我启动了zookeeper,它说zookeeper服务器已启动,但是具有以下反馈:
ZooKeeper JMX enabled by default
Using config: /home/saichanda/zookeeper-3.4.12/bin/../conf/zoo.cfg
mkdir: cannot create directory ‘’: No such file or directory
Starting zookeeper ... STARTED
然后我使用
启动hbase./bin/start-hbase.sh
输出:
starting master, logging to /usr/local/hbase/bin/../logs/hbase-root-master-saichanda-OptiPlex-9020.out
然后我给出命令
./bin/hbase shell
这将打开hbase shell,但是当我在shell中创建表时,它将引发以下
错误:
2018-07-28 11:19:07,563 ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 4 attempts
2018-07-28 11:19:07,564 WARN [main] zookeeper.ZKUtil: hconnection-0x10823d720x0, quorum=localhost:2181, baseZNode=/hbase Unable to set watcher on znode (/hbase/hbaseid)
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1045)
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:220)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:419)
at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:65)
at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:105)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.retrieveClusterId(ConnectionManager.java:905)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:648)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
我们是否需要将Zookeeper日志和hbase的位置放在同一目录中?
即使设置后,我仍然有错误
export HBASE_MANAGES_ZK=true
但是,在hbase-site.xml文件中,我希望hbase存储其内置的zookeeper文件的路径与hbase目录不同
可以使用不同的地址,还是应该将它们放在同一目录中?
如何解决此错误,以便顺利运行hbase shell?
答案 0 :(得分:1)
确保在hbase-site.xml中使用有效值指定了以下内容。我假设这是非HA设置,因为您已要求hbase托管其自己的Zk。
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>{absolute_path}</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>{hostname}</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
添加此重新启动hbase进程后,查看hbase日志中没有错误。可以在$ {hbase_home} / logs /
中找到答案 1 :(得分:0)
请确保将hbase.zookeeper.quorum
设置为现有ZK,否则HBase将无法工作。您可以共享hbase-site.xml设置吗?