HBase Shell建表报错:org.apache.hadoop.hbase.PleaseHoldException求助
我在HBase Shell执行创建表命令:create 'person', 'info'
执行失败,抛出错误:
ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2829)
at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2085)
at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:706)
at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:392)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:356)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:336)For usage try 'help "create"'
执行jps命令得到以下结果:
mac@AS-MAC-0061 3.7.0_1 % jps 8417 DataNode 8851 NodeManager 9411 Launcher 1204 8311 NameNode 14873 HMaster 8554 SecondaryNameNode 14682 QuorumPeerMain 8748 ResourceManager 15262 Jps
清理ZooKeeper数据目录解决步骤
1. 定位ZooKeeper数据目录
ZooKeeper的数据目录由其配置文件zoo.cfg中的dataDir参数定义,查找路径分两种情况:
- 若为HBase内置ZooKeeper,配置文件位于HBase安装目录的
conf文件夹下,即$HBASE_HOME/conf/zoo.cfg - 若为独立部署的ZooKeeper,配置文件在ZooKeeper安装目录的
conf文件夹下
打开zoo.cfg,找到类似如下的配置行,其值即为数据目录路径:dataDir=/usr/local/zookeeper/data
2. 停止相关服务
- 停止HBase服务:执行命令
stop-hbase.sh - 停止ZooKeeper服务:独立部署的情况执行
zkServer.sh stop;HBase内置的ZooKeeper随HBase停止而关闭,无需单独操作
3. 清理数据目录
进入找到的dataDir目录,删除所有内容:
cd /path/to/zookeeper/data rm -rf *
4. 重启服务
- 独立部署ZooKeeper:先执行
zkServer.sh start,再启动HBasestart-hbase.sh - HBase内置ZooKeeper:直接执行
start-hbase.sh启动HBase即可
5. 验证操作
重新进入HBase Shell,执行create 'person', 'info'命令,确认表是否能正常创建。
内容的提问来源于stack exchange,提问作者User9123

