为什么HBase';s托管的zookeeper服务失败,出现“0”;节点/hbase不在ZooKeeper中;?

为什么HBase';s托管的zookeeper服务失败,出现“0”;节点/hbase不在ZooKeeper中;?,hbase,apache-zookeeper,Hbase,Apache Zookeeper,TL;DR:为什么HBase管理的Zookeeper无法启动 我正在尝试建立一个HBase集群,以便从头开始学习HBase。我有4个Virtualbox虚拟机运行Ubuntu14.04 LTS服务器。我已经在Hadoop(2.7.3)上安装了一个主节点和3个工作节点。它们每个都有2个以太网适配器,1个在NAT模式下,1个在仅主机网络模式下(每个Virtualbox)。它们是192.168.56.50(主)和192.168.56.51-53(工人) 当我安装HBase 1.2.4时,我尝试在所有3

TL;DR:为什么HBase管理的Zookeeper无法启动

我正在尝试建立一个HBase集群,以便从头开始学习HBase。我有4个Virtualbox虚拟机运行Ubuntu14.04 LTS服务器。我已经在Hadoop(2.7.3)上安装了一个主节点和3个工作节点。它们每个都有2个以太网适配器,1个在NAT模式下,1个在仅主机网络模式下(每个Virtualbox)。它们是192.168.56.50(主)和192.168.56.51-53(工人)

当我安装HBase 1.2.4时,我尝试在所有3个工作节点上设置Zookeeper仲裁,由HBase管理。这不会运行。我尝试清除所有工作节点上的Zookeeper数据文件夹,然后将hbase-site.xml中的Zookeeper配置减少到第一个工作节点上的单个节点仲裁,但仍然不起作用

在hbase-env.sh中,我有

export HBASE_MANAGES_ZK=true
在hbase-site.xml中,我有

    <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
    </property>
    <property>
            <name>hbase.zookeeper.quorum</name>
            <value>192.168.56.51</value>
    </property>
    <property>
            <name>dfs.replication</name>
            <value>1</value>
    </property>
    <property>
            <name>hbase.zookeeper.property.clientPort</name>
            <value>2181</value>
    </property>
    <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>/usr/local/zookeeper/data</value>
    </property>
    <property>
            <name>zookeeper.znode.parent</name>
            <value>/hbase-unsecure</value>
   </property>
在master.log里我得到了

"RpcRetryingCaller{globalStartTime=1484535638771, pause=100, retries=1}, org.apache.hadoop.hbase.MasterNotRunningException: org.apache.hadoop.hbase.MasterNotRunningException: The node /hbase is not in ZooKeeper. It should have been written by the master. Check the value configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master."
还有很多

2017-01-15 21:59:11,236 INFO  [main-SendThread(192.168.56.51:2181)] zookeeper.ClientCnxn: Opening socket connection to server 192.168.56.51/192.168.56.51:2181. Will not attempt to authenticate using SASL (unknown error)
2017-01-15 21:59:11,237 WARN  [main-SendThread(192.168.56.51:2181)] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)

2017-01-15 21:59:26,761 ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper create failed after 4 attempts
2017-01-15 21:59:26,761 ERROR [main] master.HMasterCommandLine: Master exiting
java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster.
    at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2426)
    at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:231)
    at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:137)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
    at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2436)
在本应是唯一Zookeeper节点的节点上,Zookeeper.out文件为空,Zookeeper.log文件包含大量数据

[main-SendThread(192.168.56.51:2181)] zookeeper.ClientCnxn: Opening socket connection to server 192.168.56.51/192.168.56.51:2181. Will not attempt to authenticate using SASL (unknown error)
2017-01-17 21:50:32,343 WARN  [main-SendThread(192.168.56.51:2181)] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)

为什么它会失败?我找不到任何好的解释来解释出了什么问题。

让我们从简单的检查开始:ZK收听192.168.56.51:2181吗?netstat-at | grep 2181。我在日志中看到的第二个问题:HBase try访问无效的znode/HBase,但您的HBase站点包含/HBase unsecure。检查所有HBase节点是否具有相同的HBase-site.xml。让我们从简单检查开始:ZK侦听192.168.56.51:2181吗?netstat-at | grep 2181。我在日志中看到的第二个问题:HBase try访问无效的znode/HBase,但您的HBase站点包含/HBase unsecure。检查所有HBase节点是否具有相同的HBase-site.xml。
[main-SendThread(192.168.56.51:2181)] zookeeper.ClientCnxn: Opening socket connection to server 192.168.56.51/192.168.56.51:2181. Will not attempt to authenticate using SASL (unknown error)
2017-01-17 21:50:32,343 WARN  [main-SendThread(192.168.56.51:2181)] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)