得到“错误:无法从ZooKeeper获取主地址; znode数据== null“当使用Hbase shell时 [英] get "ERROR: Can't get master address from ZooKeeper; znode data == null" when using Hbase shell

查看:2849
本文介绍了得到“错误:无法从ZooKeeper获取主地址; znode数据== null“当使用Hbase shell时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  $ ./bin/start- hbase.sh 

$ ./bin/hbase shell

2.0.0-p353:001> list

然后我得到了这个:

 错误:无法从ZooKeeper获取主地址; znode data == null 

为什么我得到这个错误?另一个问题:
是否需要运行 ./ sbin / start-dfs.sh ./ sbin / start-yarn.sh 在运行base之前?



另外, ./ sbin / start-dfs.sh ./ sbin / start-yarn.sh for?



这里是我的一些conf doc:

hbase-sites.xml



 < configuration> 
<属性>
<名称> hbase.rootdir< /名称>
<值> hdfs://127.0.0.1:9000 / hbase< /值>
< / property>
<属性>
<名称> hbase.cluster.distributed< /名称>
<值> true< /值>
< / property>

<属性>
<名称> hbase.tmp.dir< / name>
< value> / Users / apple / Documents / tools / hbase-tmpdir / hbase-data< / value>
< / property>
<属性>
<名称> hbase.zookeeper.quorum< / name>
<值>本地主机< /值>
< / property>
<属性>
<名称> hbase.zookeeper.property.dataDir< / name>
< value> / Users / apple / Documents / tools / hbase-zookeeper / zookeeper< / value>
< / property>
< / configuration>



core-sites.xml



 <结构> 

<属性>
<名称> fs.defaultFS< / name>
< value> hdfs:// localhost:9000< / value>
< description>默认文件系统的名称。< / description>
< / property>

<属性>
< name> hadoop.tmp.dir< / name>
< value> / Users / micmiu / tmp / hadoop< / value>
< description>其他临时目录的基础。< / description>
< / property>

<属性>
< name> io.native.lib.available< / name>
<值> false< /值>
< / property>

< / configuration>



yarn-sites.xml



 <结构> 

<属性>
< name> yarn.nodemanager.aux-services< / name>
< value> mapreduce_shuffle< /值>
< / property>

<属性>
< name> yarn.nodemanager.aux-services.mapreduce.shuffle.class< / name>
< value> org.apache.hadoop.mapred.ShuffleHandler< / value>
< / property>

< / configuration>


解决方案

如果您只想运行HBase而不进入Zookeeper管理独立的HBase,然后从 hbase-site.xml 中删除​​所有属性块,但名为 hbase.rootdir

现在运行 /bin/start-hbase.sh 。 HBase自带Zookeeper,当您运行 /bin/start-hbase.sh 时就会启动它,如果您第一次尝试解决问题就足够了。稍后,您可以为Zookeeper分配模式配置。



您只需运行 /sbin/start-dfs.sh 用于运行HBase,因为 hbase.rootdir 的值设置为 hdfs://127.0.0.1:9000 / hbase 放入 hbase-site.xml 中。如果使用 file:/// some_location_on_local_filesystem 将其更改为本地文件系统的某个位置,则甚至不需要运行 / sbin / start-dfs.sh

hdfs://127.0.0.1:9000 / hbase 表示这是HDFS上的一个地方, /sbin/start-dfs.sh 启动namenode和datanode,它提供底层API来访问HDFS文件系统。要了解纱线,请查看 http://hadoop.apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/YARN.html


I installed Hadoop2.2.0 and Hbase0.98.0 and here is what I do :

$ ./bin/start-hbase.sh 

$ ./bin/hbase shell

2.0.0-p353 :001 > list

then I got this:

ERROR: Can't get master address from ZooKeeper; znode data == null

Why am I getting this error ? Another question: do I need to run ./sbin/start-dfs.sh and ./sbin/start-yarn.sh before I run base ?

Also, what are used ./sbin/start-dfs.sh and ./sbin/start-yarn.sh for ?

Here is some of my conf doc :

hbase-sites.xml

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://127.0.0.1:9000/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>

    <property>
        <name>hbase.tmp.dir</name>
        <value>/Users/apple/Documents/tools/hbase-tmpdir/hbase-data</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>localhost</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/Users/apple/Documents/tools/hbase-zookeeper/zookeeper</value>
    </property>
</configuration>

core-sites.xml

<configuration>

  <property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
      <description>The name of the default file system.</description>
  </property>

  <property>
      <name>hadoop.tmp.dir</name>
      <value>/Users/micmiu/tmp/hadoop</value>
      <description>A base for other temporary directories.</description>
  </property>

  <property>
      <name>io.native.lib.available</name>
      <value>false</value>
  </property>

</configuration>

yarn-sites.xml

<configuration>

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>

</configuration>

解决方案

If you just want to run HBase without going into Zookeeper management for standalone HBase, then remove all the property blocks from hbase-site.xml except the property block named hbase.rootdir.

Now run /bin/start-hbase.sh. HBase comes with its own Zookeeper, which gets started when you run /bin/start-hbase.sh, which will suffice if you are trying to get around things for the first time. Later you can put distributed mode configurations for Zookeeper.

You only need to run /sbin/start-dfs.sh for running HBase since the value of hbase.rootdir is set to hdfs://127.0.0.1:9000/hbase in your hbase-site.xml. If you change it to some location on local the filesystem using file:///some_location_on_local_filesystem, then you don't even need to run /sbin/start-dfs.sh.

hdfs://127.0.0.1:9000/hbase says it's a place on HDFS and /sbin/start-dfs.sh starts namenode and datanode which provides underlying API to access the HDFS file system. For knowing about Yarn, please look at http://hadoop.apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/YARN.html.

这篇关于得到“错误:无法从ZooKeeper获取主地址; znode数据== null“当使用Hbase shell时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆