ubuntu

ubuntu下hbase故障如何排查

小樊
33
2025-12-14 18:07:43
栏目: 智能运维

Ubuntu 下 HBase 故障排查手册

一 快速定位流程

二 常见故障与修复要点

三 配置与端口速查

检查项 推荐值或路径 说明
hbase.rootdir hdfs://:9000/hbase core-site.xmlfs.defaultFS 端口保持一致
hbase.cluster.distributed true 分布式模式必须显式开启
hbase.zookeeper.quorum zk1,zk2,zk3localhost 与 ZK 部署一致
hbase.wal.provider filesystem 兼容性更好的 WAL 提供者
HBASE_MANAGES_ZK true/false 使用内置或外部 ZK
HBASE_PID_DIR /usr/local/hbase/pids 避免 /tmp 清理导致无法 stop
Web UI 16010(Master),旧版常见 60010 访问 http://:16010 查看集群状态与 RegionServer 列表

四 性能与稳定性问题

五 一键排查脚本示例

#!/usr/bin/env bash
set -e

echo "=== 1) Java & 环境变量 ==="
java -version || { echo "Java 未安装"; exit 1; }
echo "HBASE_HOME=$HBASE_HOME"
echo "PATH=$PATH"
which hbase || echo "hbase 命令未找到,请检查 HBASE_HOME/bin 是否在 PATH"

echo "=== 2) 进程与端口 ==="
jps
for p in 16000 16010 2181 8080 60010; do
  ss -ltnp | grep -q ":$p " || echo "端口 $p 未监听"
done

echo "=== 3) HDFS 状态 ==="
hdfs dfsadmin -safemode get || true
hdfs dfs -ls / || true

echo "=== 4) ZooKeeper 状态 ==="
{ echo stat; sleep 1; } | nc localhost 2181 || echo "无法连接 ZK 2181"

echo "=== 5) 最近错误日志 ==="
LOGFILE=$(ls -1t $HBASE_HOME/logs/hbase-*-master-*.log 2>/dev/null | head -1)
[ -f "$LOGFILE" ] && tail -n 100 "$LOGFILE" | grep -i -A5 -B5 "ERROR\|Exception\|FATAL" || echo "未找到 Master 日志"

echo "=== 6) 配置语法检查 ==="
xmllint --noout $HBASE_HOME/conf/hbase-site.xml 2>/dev/null || echo "hbase-site.xml 可能格式错误"

echo "=== 7) 时间同步 ==="
timedatectl status || ntpq -p || echo "请检查 NTP 时间同步(建议误差 < 30s)"

将脚本保存为 check_hbase.sh,在 MasterRegionServer 上执行,可快速收集关键故障线索。

0
看了该问题的人还看了