Reputation: 1013
I am running a Hbase inside a docker container. When it starts up using a docker-compose file, I am seeing the following error:
WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] server.NIOServerCnxn: caught end of stream exception
EndOfStreamException: Unable to read additional data from client sessionid 0x16205128eac02db, likely client has closed socket
at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:228)
at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
at java.lang.Thread.run(Thread.java:748) 2018-03-08 12:59:45,737 INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] server.NIOServerCnxn: Closed socket connection for client /172.18.0.2:45372 which had sessionid 0x16205128eac02db
And I am also seeing the following when i run a mapreduce to get data from Hbase:
Disconnecting client for session: 0x16205128eac00dc org.apache.zookeeper.ClientCnxn.disconnect(ClientCnxn.java:1290)
An exception was thrown while closing send thread for session 0x16205128eac00dc : Unable to read additional data from server sessionid 0x16205128eac00dc, likely server has closed socket org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1086)
Is there any way I can fix this? My zoo.cfg file looks like this:
clientPort=2181
clientPortAddress=hbase-docker
server.1=hbase-docker:2181
maxClientCnxns=200
Docker-compose file looks like this:
hbase-docker:
hostname: "hbase-docker"
container_name: "hbase-docker"
build:
dockerfile: "Dockerfile-5.6"
context: "./hbase-docker/"
volumes:
- "./hbase-docker/data:/data"
ports:
- "2181:2181"
HBase version in docker container is: 1.2.4
Zookeeper version: 3.4.6-1569965
Docker version: 17.12.1-ce, build 7390fc6
Docker Compose version: 1.16.1, build 6d1ac21
OS version: Ubuntu 16.04.4 LTS (xenial)
Dockerfile looks like this:
# HBase in Docker
#
# Version 0.3
# http://docs.docker.io/en/latest/use/builder/
FROM ubuntu:xenial
COPY *.sh /build/
ENV HBASE_VERSION 1.2.4
RUN mkdir -p /var/zookeeper && \
/build/prepare-hbase.sh && \
cd /opt/hbase && /build/build-hbase.sh \
cd / && /build/cleanup-hbase.sh
VOLUME /data
ADD ./hbase-site.xml /opt/hbase/conf/hbase-site.xml
ADD ./zoo.cfg /opt/hbase/conf/zoo.cfg
ADD ./replace-hostname /opt/replace-hostname
ADD ./hbase-server /opt/hbase-server
# REST API
EXPOSE 8080
# REST Web UI at :8085/rest.jsp
EXPOSE 8085
# Thrift API
EXPOSE 9090
# Thrift Web UI at :9095/thrift.jsp
EXPOSE 9095
# HBase's Embedded zookeeper cluster
EXPOSE 2181
# HBase Master web UI at :16010/master-status; ZK at :16010/zk.jsp
EXPOSE 16010
CMD ["/opt/hbase-server"]
Upvotes: 0
Views: 1145
Reputation: 1169
Looks like you are missing dataDir in zoo.cfg file.
dataDir = /path/to/zookeeper/data
Make sure the directory you specify already exists or you would require to add in Dockerfile to create this directory and then rebuild image with different name.
Upvotes: 0