问题一:安装完成后在Hbase shell 命令行执行list命令时,爆出如下错误:
hbase(main):001:0> list
TABLE
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/hbase-0.98.9-hadoop2/lib/phoenix-4.2.2-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/hbase-0.98.9-hadoop2/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/hadoop-2.6.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
2017-07-14 15:06:48,032 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableERROR: Can't get master address from ZooKeeper; znode data == nullHere is some help for this command:
List all tables in hbase. Optional regular expression parameter could
be used to filter the output. Examples:hbase> listhbase> list 'abc.*'hbase> list 'ns:abc.*'hbase> list 'ns:.*'
对应的部分log内容:
由以上的信息得出问题是不能从zookeeper中得到master地址。用hbase zkcli命令查看
zk: xxxx:2181(CONNECTED) 0] ls /
[hbase, zookeeper]
[zk: xxxx:2181(CONNECTED) 1] ls /hbase
[meta-region-server, backup-masters, table, draining, region-in-transition, table-lock, balancer, namespace, hbaseid, online-snapshot, replication, splitWAL, recovering-regions, rs]
确实没有master文件夹。然后就关闭hbase和hadoop,清空zookeeper的data目录(不清楚data目录在哪,可在zookeeper/conf下的zoo.cfg文件中查看如下图所示),在重启就好了。
出现了master文件夹
[zk: xxxx:2181(CONNECTED) 0] ls /hbase
[meta-region-server, backup-masters, table, draining, region-in-transition, table-lock, running, master, namespace, hbaseid, online-snapshot, replication, splitWAL, recovering-regions, rs]
但问题的具体原因还不清除。
问题二:
同样在执行list命令时,又报错ERROR:org.apache.hadoop.hbase.PleaseHoldException: Master is initializing。如下图所示:
进一步查看关键log信息如下:
发现好像是有关host配置的问题造成节点间的链接出现了异常,于是又去检查了host的配置信息以及hbase-site的配置,最终发现原来是在配置hbase-site时将hbase.rootdir这个属性配置错了,更改后就OK了(如果在安装Hbase时,是一个节点配置错误后将配置文件传到其他的各个节点,记得要更改所有的节点的配置文件)
至于其他的问题想起来再接着更新吧。
但是不管是什么问题,如果不能一下搞定记得去查看LOG,根据log去分析问题,你就能找到问题的解决办法。