能够启动hbase外壳,但无法在外壳上工作

能够启动hbase外壳,但无法在外壳上工作,hbase,apache-zookeeper,Hbase,Apache Zookeeper,我启动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 然后我使用 ./bin/start-h

我启动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
然后我使用

./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)
但是,在hbase-site.xml文件中,我希望hbase存储其内置zookeeper文件的路径与hbase目录不同

有不同的地址可以吗?还是应该在同一个目录中


如何解决此错误,以顺利运行hbase shell?

请确保在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.zookeeper.property.dataDir
{绝对路径}
hbase.zookeeper.property.clientPort
2181
hbase.zookeeper.quorum
{hostname}
hbase.cluster.distributed
真的

添加此重新启动hbase进程后,请查看hbase日志中是否没有错误。可以在${hbase_home}/logs/

中找到,在我运行了以下命令之后,>$sudo./bin/hbase shell我得到了这个<代码>警告[main]util.NativeCodeLoader:无法为您的平台加载本机hadoop库。。。在适用的情况下使用内置java类ERROR[main]zookeeper.RecoverableZooKeeper:zookeeper存在4次尝试后失败警告[main]zookeeper.ZKUtil:hconnection-0x14b0e1270x0,quorum=localhost:2181,baseZNode=/hbase无法在znode上设置监视程序(/hbase/hbaseid)org.apache.zookeeper.KeeperException$ConnectionLossException:keeperrorCode=ConnectionLoss for/hbase/hbasedafter之后,我得到了hbase Shell;输入“帮助”以获取支持的命令列表。键入“exit”以离开HBase外壳版本1.2.6.1,rUnknown,Sun Jun 3 23:19:26 CDT 2018
HBase(main):001:0>
我正试图遵循此链接()当我尝试使用HBase外壳中的create命令创建表时,我得到以下错误
2018-08-01 14:32:22001错误[main]client.ConnectionManager$HConnectionImplementation:无法连接到ZooKeeper:KeepErrorCode=ConnectionLoss for/hbase
WARN[main]util.NativeCodeLoader:无法为您的平台加载本机hadoop库。。。在适用的情况下使用内置java类,这是一个警告。忽略。查看在hbase embedded zk正在运行的情况下,您是否能够看到HQuorumPeer正在运行。(如果您提到export HBASE_MANAGES_ZK=true HBASE-env.sh),也可以尝试使用zkCli.sh登录到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>