在 CentOS 上 HBase 启动不了 的原因很多,下面按最常见原因 → 排查方法 → 解决思路给你一个系统梳理。你对照看一下是哪一类。
HBase 强依赖 Java
检查:
java -version
echo $JAVA_HOME
✅ 要求:
JAVA_HOME 必须配置好解决:
export JAVA_HOME=/usr/java/jdk1.8.0_xxx
并写入:
vi ~/.bashrc
export JAVA_HOME=xxx
export PATH=$JAVA_HOME/bin:$PATH
重点检查:
$HBASE_HOME/conf/hbase-site.xml
常见错误:
hbase.rootdir 写错✅ 最小可用配置(单机):
<property>
<name>hbase.rootdir</name>
<value>file:///opt/hbase/data</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/hbase/zookeeper</value>
</property>
CentOS 默认 hostname 不对,HBase 起不来
检查:
hostname
hostname -f
查看:
cat /etc/hosts
✅ 必须有:
127.0.0.1 localhost
192.168.x.x your-hostname
HBase 依赖 ZooKeeper
查看:
jps
应该看到:
如果 ZooKeeper 端口被占用:
netstat -tunlp | grep 2181
CentOS 特有坑
关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
关闭 SELinux:
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
HBase 不能写数据目录
chown -R hbase:hbase /opt/hbase
chmod -R 755 /opt/hbase
cd $HBASE_HOME/logs
tail -200 hbase-*.log
常见关键词:
ClassNotFoundExceptionBindExceptionUnknownHostExceptionPermission denied单机:
start-hbase.sh
伪分布 / 集群:
你可以直接贴:
我可以直接告诉你 是哪一行配置或环境出问题了。