Debian 上 HBase 启动失败的定位与修复指南
一、快速定位步骤
jps | grep -E "HMaster|HRegionServer" 检查进程是否起来netstat -tulpen | egrep "16000|16010|2181"(HMaster RPC、Web、ZooKeeper)tail -n 200 $HBASE_HOME/logs/hbase-<user>-master-<hostname>.logtail -n 200 $HBASE_HOME/logs/hbase-<user>-regionserver-<hostname>.logecho ruok | nc <zk_host> 2181 应返回 imok;或用 zkCli.sh -server <zk_host>:2181 ls /hbase 查看根节点jps | grep -E "NameNode|DataNode";hdfs dfsadmin -safemode get;hdfs dfs -ls /hbase 检查目录与权限echo "status" | hbase shell 或 hbase shell 中执行 status;若报 ServerNotRunningYetException,说明核心服务未就绪二、常见根因与对应修复
hdfs dfsadmin -safemode leave;确认 /hbase 目录存在且 hbase 用户可写lsof -i :16000 或 ss -ltnp | grep 160 找到占用进程并释放,或在 hbase-site.xml 调整
<property><name>hbase.master.port</name><value>16000</value></property><property><name>hbase.regionserver.port</name><value>16020</value></property>hbase.zookeeper.quorum、HDFS 相关配置;确保 Hadoop 与 HBase 配置目录在 HBASE_CLASSPATH 或 conf/ 可被加载hbase-env.sh 调整堆与 GC
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xms4G -Xmx4G"export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xms8G -Xmx8G"hdfs dfs -chown -R hbase:hadoop /hbase;本地数据/日志目录 chown -R hbase:hbase $HBASE_HOME/{data,logs}apt-get install -y ntpdate ntp;ntpdate cn.pool.ntp.org;timedatectl status 检查三、关键配置文件与参数示例
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///usr/local/hbase/data</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
</configuration>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://<nn_host>:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>zk1,zk2,zk3</value>
</property>
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>16010</value>
</property>
<property>
<name>hbase.regionserver.port</name>
<value>16020</value>
</property>
<property>
<name>hbase.regionserver.info.port</name>
<value>16030</value>
</property>
</configuration>
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xms4G -Xmx4G -XX:+UseG1GC"export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xms8G -Xmx8G -XX:+UseG1GC"四、启动与验证命令清单
$HBASE_HOME/bin/start-hbase.sh$HBASE_HOME/bin/stop-hbase.shjps | grep -E "HMaster|HRegionServer|QuorumPeerMain"ss -ltnp | egrep "16000|16010|2181"echo "status" | hbase shellhttp://<master>:16010hbase hbck -fixMetahbase hbck -fixAssignmentshbase clean --cleanAll(会清空数据,务必先备份)五、Debian 环境专项检查
apt update && apt install -y openjdk-8-jdk ntpdate ntpjava -version、timedatectl status 确认时区与同步/etc/security/limits.conf 增加(示例用户为 hbase)
hbase soft nofile 32768hbase hard nofile 32768systemctl stop firewalld(或 ufw disable)firewall-cmd --zone=public --add-port=16000/tcp --permanent && firewall-cmd --reloadchown -R hbase:hbase $HBASE_HOME/{data,logs}