我在完全分布式模式下设置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
,它们总是显示Exeception:
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)
那么我的群集出了什么问题?
答案 0 :(得分:0)
我发现我使用的是Docker 1.8.2版本 完全删除Docker后,安装较旧的(1.7.0)然后我的脚本正常运行