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