【发布时间】:2015-11-05 12:04:33
【问题描述】:
我正在建立一个完全分布式模式的 HBase 集群,有 1 个 HMaster 节点和 3 个 Regionservers 节点
我的hbase-site.xml 文件包含
<configuration>
<property>
<name>hbase.master</name>
<value>hbase.master:60000</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop.master:9000/data/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/tmp</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hbase.master</value>
</property>
</configuration>
我的hadoop集群运行正常。
我和hbase master在同一台机器上运行Zookeeper,配置文件zoo.cfg作为默认值。
当我启动集群并查看 Hbase Master Web UI 时,所有 Regionserver 都出现在列表中,但是当我尝试创建表或其他命令(例如 hbase>status)时,它们总是显示异常:
ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:1889)
at org.apache.hadoop.hbase.master.MasterRpcServices.getClusterStatus(MasterRpcServices.java:695)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:42406)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2033)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
at java.lang.Thread.run(Thread.java:745)
那么我的集群出了什么问题?
【问题讨论】:
-
不,我认为这个问题与docker版本无关,我也间歇性地收到这个错误。在我的情况下,由于某些主机冲突,hregionservers 无法连接到 zookeeper。
标签: docker hbase apache-zookeeper