使用Hbase shell时出现"错误:无法从ZooKeeper获取主地址; znode数据== null"

Ric*_*Lau 12 shell hadoop hbase

我安装了Hadoop2.2.0和Hbase0.98.0,这就是我的工作:

$ ./bin/start-hbase.sh 

$ ./bin/hbase shell

2.0.0-p353 :001 > list
Run Code Online (Sandbox Code Playgroud)

然后我得到了这个:

ERROR: Can't get master address from ZooKeeper; znode data == null
Run Code Online (Sandbox Code Playgroud)

为什么我收到此错误?另一个问题:我需要运行./sbin/start-dfs.sh./sbin/start-yarn.sh之前我跑基地?

还有什么用于./sbin/start-dfs.sh./sbin/start-yarn.sh

以下是我的一些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>
Run Code Online (Sandbox Code Playgroud)

核心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>
Run Code Online (Sandbox Code Playgroud)

纱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>
Run Code Online (Sandbox Code Playgroud)

Cha*_*ant 13

如果您只想运行HBase而不进入独立HBase的Zookeeper管理,则删除除名为的属性块之外的所有property块.hbase-site.xmlhbase.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,它提供了访问HDFS文件系统的底层API.要了解Yarn,请查看http://hadoop.apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/YARN.html.


Gru*_*Gru 6

如果vm或主机进入休眠状态也会发生这种情况,Zookeeper将不会保持活动状态.重新启动VM应该可以解决问题.