在 CentOS 上 HBase 报错 的原因很多,不一定是 CentOS 本身的问题,更多是环境配置、依赖或版本不匹配。下面我按常见原因 → 排查方法 → 解决建议给你一个系统总结。
现象
UnsupportedClassVersionErrorjava -version 不对原因
✅ 解决
java -version
推荐:
yum install java-1.8.0-openjdk
并设置:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
现象
RegionServer 无法注册unknown host、Cannot resolve localhost✅ 解决 编辑:
vi /etc/hosts
必须有:
127.0.0.1 localhost
192.168.x.x your-hostname
查看主机名:
hostname
现象
Clock skew too large✅ 解决
yum install ntp
systemctl start ntpd
systemctl enable ntpd
现象
waiting for zookeeperConnectionLoss✅ 检查
zkServer.sh status
常见原因:
hbase-site.xml 中 ZK 地址写错现象
✅ 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
✅ 关闭 SELinux
setenforce 0
vi /etc/selinux/config
# SELINUX=disabled
现象
Permission denied✅ 解决
hdfs dfs -mkdir /hbase
hdfs dfs -chown hbase:hadoop /hbase
现象
dmesg 中有 Out of memory✅ 解决 修改:
vi hbase-env.sh
export HBASE_HEAPSIZE=1G
cd $HBASE_HOME/logs
tail -200 hbase-*-master-*.log
tail -200 hbase-*-regionserver-*.log
你可以直接把以下信息发我:
| 报错 | 原因 |
|---|---|
Unsupported major.minor version |
JDK 版本不对 |
Cannot assign requested address |
hosts 配置错误 |
KeeperErrorCode = ConnectionLoss |
ZooKeeper 问题 |
Clock skew |
时间不同步 |
Permission denied |
HDFS 权限问题 |
你可以直接告诉我:
我可以精确到哪一行配置错了。