--bin/start-hbase.sh后,各节点进程启动正常,通过hbase shell进入hbase命令行的时候,发现ERROR: Can't get master address from ZooKeeper; znode data == null,其实这时候hmaster进程已经宕了,
以前出现过这个问题,不过当时是因为hdfs://hadoop1:9000/hbase这个端口号写错了,导致hmaster进程启动失败,对于这个问题,网上说关闭防火墙、ssh有问题,zk有问题,如果你有常识的话,基本这些回答可以忽略。
日志如下
org.apache.hadoop.hbase.TableExistsException: hbase:namespace
at org.apache.hadoop.hbase.master.handler.CreateTableHandler.prepare(CreateTableHandler.java:133)
at org.apache.hadoop.hbase.master.TableNamespaceManager.createNamespaceTable(TableNamespaceManager.java:232)
at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:86)
at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:1063)
at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:942)
at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:613)
at java.lang.Thread.run(Thread.java:745
==============================
java.lang.RuntimeException: HMaster Aborted
at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:194)
at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:135)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2803)
Sun Dec 6 06:00:04 PST 2015 Starting master on hadoop1
==================================
2015-12-06 05:08:20,125 INFO [master:hadoop0:60000] catalog.CatalogTracker: Failed verification of hbase:meta,,1 at address=hadoop2,60020,1449389567956, exception=org.apache.hadoop.hbase.NotServingRegionExceptio n: org.apache.hadoop.hbase.NotServingRegionExceptio n: Region hbase:meta,,1 is not online on hadoop2,60020,1449407291429
at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegionByEncodedName(HRegionServer.java:2776)
at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegion(HRegionServer.java:4333)
at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegionInfo(HRegionServer.java:3676)
at org.apache.hadoop.hbase.protobuf.generated.AdminProtos$AdminService$2.callBlockingMethod(AdminProtos.java:20158)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2027)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:110)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:90)
at java.lang.Thread.run(Thread.java:745)
等等。
----问题解决思路:
1、首先确认你的hadoop、zk集群是正常计算什么的
2、上述端口号没错
3、hdfs文件系统hbase文件夹有读写的权限
4、hbase配置文件无误
5、上述都没问题的话,执行zkClient.sh进入zk客户端,ls /查看目录结构,应该有一个hbase目录,rmr /hbase,删除这个目录,重新启动habse,应该就没问题了,这步很关键,很容易忽略,让zk重新注册hbase!!