0
votes

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"]
1

1 Answers

0
votes

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.