CentOS 上 HBase 启动不了,原因通常集中在环境配置、权限、端口、依赖服务这几类。下面按最常见原因 → 排查方法 → 解决建议给你一个系统性清单。
HBase 强依赖 JDK,而且版本要对。
检查:
java -version
echo $JAVA_HOME
要求:
问题表现:
UnsupportedClassVersionError解决:
export JAVA_HOME=/usr/java/jdk1.8.0_xxx
并写入:
vi ~/.bashrc
HBase 依赖:
检查:
jps
应看到:
解决:
start-dfs.sh
CentOS 默认 hostname 容易不对。
检查:
hostname
cat /etc/hosts
必须包含:
127.0.0.1 localhost
192.168.x.x your-hostname
HBase 配置中:
<property>
<name>hbase.master.hostname</name>
<value>your-hostname</value>
</property>
HBase 对时间极敏感。
检查:
date
解决:
yum install ntp -y
ntpdate pool.ntp.org
HBase 数据目录必须可写。
检查:
ls -ld /hbase
解决:
chown -R hbase:hadoop /hbase
常见端口:
检查:
netstat -tunlp | grep 160
不要只看启动脚本是否退出,看日志:
cd $HBASE_HOME/logs
tail -200 hbase-*-master-*.log
重点搜:
ExceptionERRORCannot assignConnection refusedhbase-site.xml:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/tmp/zookeeper</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
你可以贴出:
jps 输出我可以直接告诉你是哪一行配置或环境导致启动失败。