访问HBase Shell遇ServerNotRunningYetException问题求助
HBase Shell 报错
ServerNotRunningYetException 排查与解决 环境信息
- Hadoop 版本:3.3.1
- HBase 版本:2.4.15
- 已部署 Hive
报错信息
ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet at org.apache.hadoop.hbase.master.HMaster.checkServiceStarted(HMaster.java:2804) at org.apache.hadoop.hbase.master.MasterRpcServices.isMasterRunning(MasterRpcServices.java:1163) at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:387) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:132) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:369) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:349)
当前进程列表
182002 HRegionServer 243859 HMaster 5698 DataNode 243783 HQuorumPeer 6551 NodeManager 6376 ResourceManager 5482 NameNode 265023 Jps 5932 SecondaryNameNode
hbase-site.xml 配置
<property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <property> <name>hbase.master.port</name> <value>60001</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hdoop/hbase/zookeeper</value> </property> <property> <name>hbase.zookeeper.property.maxClientCnxns</name> <value>35</value> </property>
排查与解决步骤
检查HMaster启动日志
进入${HBASE_HOME}/logs目录,打开HMaster日志文件(命名格式通常为hbase-{你的用户名}-master-{主机名}.log),搜索FATAL或ERROR关键字,定位具体启动失败原因——常见原因包括HDFS权限不足、ZooKeeper连接异常、端口冲突等。验证HDFS状态与权限
- 执行
hdfs dfs -ls /确认HDFS根目录下存在/hbase目录,若不存在则手动创建:hdfs dfs -mkdir /hbase - 确保HBase运行用户对
/hbase目录拥有读写权限:hdfs dfs -chown hdoop:hdoop /hbase(替换为你的实际HBase运行用户) - 执行
hdfs dfsadmin -report检查HDFS集群所有DataNode是否正常运行。
- 执行
检查ZooKeeper连接状态
- 执行
zkCli.sh进入ZooKeeper客户端,输入ls /hbase查看HBase在ZK中的节点是否正常创建。若连接失败,检查ZK默认端口2181是否开放,同时确认hbase-site.xml中hbase.zookeeper.quorum配置(未配置则默认localhost,需保证HQuorumPeer进程正常运行)。
- 执行
验证HMaster端口配置
- 执行
netstat -tulpn | grep 60001(或ss -tulpn | grep 60001)检查60001端口是否被其他进程占用,若占用则修改hbase.master.port配置或停止占用进程。
- 执行
重启HBase集群
- 先停止HBase:
stop-hbase.sh - 若日志显示ZK节点异常,可进入ZK客户端执行
rmr /hbase清理残留节点(注意:此操作会清除HBase元数据,需确认无重要数据或已备份后执行) - 重新启动HBase:
start-hbase.sh - 等待3-5分钟后再尝试进入HBase Shell。
- 先停止HBase:
内容的提问来源于stack exchange,提问作者neeeeeeeeeeeenssss
相关产品推荐
相关产品推荐

