温馨提示×

centos hbase为什么启动失败

小樊
48
2026-09-24 16:09:27
栏目: 智能运维

在 CentOS 上 HBase 启动失败 的原因有很多,下面我按最常见原因 → 排查方法 → 解决办法给你系统梳理一下,你可以对照看是哪一种。


一、最常见的原因(90% 都在这里)

1️⃣ Java 环境有问题(最常见)

HBase 强依赖 Java

现象

  • start-hbase.sh 后没反应
  • 日志里出现 command not found: java
  • jps 看不到 HMaster

检查

java -version
echo $JAVA_HOME

解决

  • 必须安装 JDK 8 或 11(推荐 JDK 8)
  • 在 hbase-env.sh 中明确指定:
export JAVA_HOME=/usr/java/jdk1.8.0_xxx

2️⃣ HBase 与 Hadoop 版本不兼容

现象

  • HMaster 启动几秒后自动退出
  • 日志大量 NoSuchMethodError、ClassNotFoundException

解决

  • HBase 1.x → Hadoop 2.x
  • HBase 2.x → Hadoop 3.x
  • 不要混用 CDH / Apache 版本

3️⃣ ZooKeeper 启动失败或端口冲突

现象

  • HMaster 起不来
  • 日志中 Connection refused、Cannot connect to ZooKeeper

检查

netstat -tnlp | grep 2181

解决

  • 如果用 HBase 自带 ZK:
export HBASE_MANAGES_ZK=true
  • 如果自己部署 ZK,确保已启动

4️⃣ 本地模式 / 分布式模式配置错误

单机模式

<property>
  <name>hbase.unsafe.stream.capability.enforce</name>
  <value>false</value>
</property>

分布式模式必须配

hbase.cluster.distributed = true
hbase.rootdir = hdfs://localhost:9000/hbase

5️⃣ 主机名 / hosts 配置错误(非常常见)

现象

  • RegionServer 起不来
  • localhost: Error: Could not resolve hostname

检查

hostname
cat /etc/hosts

正确示例

127.0.0.1   localhost
192.168.1.10 master

并确保:

ping master

6️⃣ 目录权限问题

现象

  • HMaster 启动失败
  • 日志中 Permission denied

解决

chown -R hbase:hadoop /opt/hbase
chmod -R 755 /opt/hbase

7️⃣ 端口被占用

常见端口:

  • 16000(HMaster)
  • 16020(RegionServer)
  • 2181(ZooKeeper)
netstat -tnlp | grep 160

二、快速排查步骤(建议你照着做)

# 1. 看日志(最重要)
cd $HBASE_HOME/logs
tail -200 hbase-*.log

# 2. 看进程
jps

# 3. 单机测试
stop-hbase.sh
start-hbase.sh

三、如果你愿意,我可以直接帮你定位

请把下面信息贴出来(越多越好):

  1. HBase 版本
  2. Hadoop 版本
  3. 单机 / 伪分布 / 集群
  4. 报错日志(关键几行就行)
  5. hbase-site.xml 内容

我可以直接告诉你是哪一行配置或环境问题导致的。

0 踩