今天突然启动hbase后,在命令行上执行list命令报错:
ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
尝试使用如下方式解决:
停止hbase、hadoop、zk集群;
删除datanode节点中的临时文件,删除zk下dataDir中的version-2文件;重新格式化namenode,和zkcf;
重起zk、hadoop、hbase集群;
但仍然报错,参考这篇文章http://blog.csdn.net/arlanhon/article/details/21304465
于是修改hbase配置文件hbase-site.xml,hbase.rootdir改成了hbase.root.dir,增加了hbase.master(后来正式没用)如下:
<configuration>
<property>
<name>hbase.root.dir</name>
<value>hdfs://centos1:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--<property>
<name>hbase.master</name>
<value>hdfs://centos1:6000</value>
</property> -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>centos1,centos2,centos3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hbase/zookeeper/data</value>
</property>
</configuration>
重启hbase,仍然报错:
ERROR: Can't get master address from ZooKeeper; znode data == null
参考文章:http://mail-archives.apache.org/mod_mbox/hadoop-user/201211.mbox/%3C1352628661.70639.YahooMailNeo@web15807.mail.cnb.yahoo.com%3E
先启动regionserver,在启动HMaster。
在regionServer上./hbase-daemon.sh start regionserver
在master上执行:./bin/hbase-daemon.sh start master
解决问题!