我安装了hadoop2.2.0和hbase0.98.0,我的工作如下:
$ ./bin/start-hbase.sh
$ ./bin/hbase shell
2.0.0-p353 :001 > list
然后我得到了这个:
ERROR: Can't get master address from ZooKeeper; znode data == null
为什么我会犯这个错误?另一个问题:我需要跑步吗 ./sbin/start-dfs.sh
以及 ./sbin/start-yarn.sh
在我跑垒之前?
还有,你用了什么 ./sbin/start-dfs.sh
以及 ./sbin/start-yarn.sh
为了什么?
这是我的一些文件:
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>
8条答案
按热度按时间vuktfyat1#
您需要启动zookeeper,然后运行hbase shell
您可能需要在hbase-env.sh中检查此属性
参考来源-zookeeper
dddzy1tm2#
如果虚拟机或主机处于休眠状态,zookeeper也可能无法保持活动状态。重启vm应该可以解决这个问题。
wh6knrhe3#
如果只想运行hbase而不进入zookeeper management for standalone hbase,请删除所有
property
从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,后者提供访问hdfs文件系统的底层api。了解Yarn,请看http://hadoop.apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/yarn.html.yc0p9oo04#
我也犯了同样的错误。linux防火墙正在阻止连接。可以通过telnet测试端口。一个快速解决方法是关闭防火墙,看看它是否修复了它:
完全禁用所有节点上的防火墙。注意:重新启动计算机后,此命令将失效。
长期的解决办法是您必须配置防火墙以允许hbase端口。
注意,您的hbase版本可能使用不同的端口:https://issues.apache.org/jira/browse/hbase-10123
ny6fqffe5#
一个快速的解决方案是重新启动hbase:
8dtrkrch6#
在我的例子中,运行hbase时出现了相同的错误-我没有在hbase-site.xml中包含zookeeper属性,但仍然得到了上述错误消息(根据apachehbase指南,只有rootdir和distributed这两个属性是必需的)。
我还可以追溯我的jps命令输出,发现我的hregion服务器和hmaster确实没有正确地启动和运行。
在停止和启动(比如重置)之后,我确实启动了这两个,并且可以正常运行hbase。
gv8xihay7#
如果发生在vmware或virtual box中,请通过命令重新启动cloudera
init1
请检查您是否具有根权限,然后重试,希望它能有所帮助:)hbase外壳
u5rb5r598#
hbase shell的输出非常高,许多错误配置都会导致此消息。为了帮助自己进行调试,最好查看hbase登录
找出问题的根本原因。
我也有同样的问题。对我来说,根本原因是hadoop kms与hbase主机的端口号冲突。它们都使用16000端口,所以我的主机在调用hbase shell时都没有启动。在我修好之后,我的hbase工作了。
同样,kms端口冲突可能不是您的根本原因。强烈建议查看/var/log/hbase以找到根本原因。