1. ERROR: The node /hbase is not in ZooKeeper. It should have been written by the master. Check the value configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master.
主要原因是独立安装的zookeeper并没有创建/znode, 导致Hbase无法定位到默认的znode--- /hbase
解决方法:
./zkCli.sh -server 127.0.0.1:2182(换成你的client端口)
create /hbase myhbase
2. org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
hbase.zookeeper.quorum 没配置对,我改了zookeeper client的默认端口,忘了改这里(host:2182,host2:2182)
注意官方推荐这个参数最好设置基数个host,说是怕leader挂了方便选出另一个leader,没太明白,按这说法挂两个怎么办?求教
3. ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
看log发现来是 hadoop 集群在安全模式的原因,执行命令
hadoop dfsadmin -safemode leave
再重新启动habase
-safemode enter|leave|get|wait安全模式维护命令。安全模式是Namenode的一个状态,这种状态下
1.不接受对名字空间的更改(只读)
2.不复制或删除块
Namenode会在启动时自动进入安全模式,当配置的块最小百分比数满足最小的副本数条件时,会自动离开安全模式。安全模式可以手动进入,但是这样的话也必须手动关闭安全模式。
4.
<property>
<name>hbase.rootdir</name>
<value>hdfs://hostname:9000/hbase</value>
</property>
这里的hostname 只能是机器名,不能用ip地址,识别不了。