HBase的日志是故障诊断的核心依据,关键日志路径为/var/log/hbase/(如hbase-*-master-*.log、hbase-*-regionserver-*.log)。使用tail -f命令实时查看日志,重点搜索ERROR、WARN、FATAL等关键字,可快速定位启动失败、Region无法上线、连接超报等问题根源。
通过jps命令查看HBase关键进程是否运行:HMaster(负责集群管理)、HRegionServer(负责数据存储)。若进程未启动,需检查进程是否被系统杀死(可通过dmesg查看OOM Killer记录),或手动启动服务(systemctl start hbase)。
重点检查hbase-site.xml(集群核心配置)和hbase-env.sh(环境变量):
hbase.cluster.distributed:分布式模式下必须设为true;hbase.rootdir:指向正确的HDFS路径(如hdfs://namenode:9000/hbase);hbase.zookeeper.quorum:填写ZooKeeper集群地址(如node1,node2,node3)。HBase依赖稳定的网络环境,需检查:
ping测试集群节点间网络是否可达;netstat -anp | grep <端口>(如HMaster端口60000、RegionServer端口16020)查看端口是否被占用,若被占用需停止占用进程或修改hbase-site.xml中的端口号;firewall-cmd --list-ports查看防火墙是否放行HBase端口,未放行则添加规则(firewall-cmd --add-port=<端口>/tcp --permanent)。资源不足是HBase启动或运行失败的常见原因,需检查:
free -m查看系统内存,确保HBase分配的堆内存(hbase.env.sh中HBASE_HEAPSIZE)不超过物理内存的70%(避免GC停顿);df -h查看HBase数据目录(hbase.rootdir指定的HDFS路径)的磁盘空间,剩余空间需大于总容量的10%(避免写入阻塞);top查看CPU使用率,若长期超过80%需优化查询或扩容节点。hbase hbck:检查集群健康状态,修复元数据不一致(如region未分配、表状态异常),命令:hbase hbck -j(显示详细信息);hbase shell:通过命令交互式诊断,常用命令:
status 'detailed':查看集群详细状态(包括RegionServer数量、region分布);count 'table_name':统计表数据量(验证表是否可访问);scan 'table_name', {LIMIT=>5}:查看表数据(验证读功能)。HBase依赖ZooKeeper进行协调,需检查:
systemctl status zookeeper查看是否运行,未运行则启动(systemctl start zookeeper);zkCli.sh -server localhost:2181进入命令行,执行ls /hbase查看HBase节点是否存在(正常应返回meta-region-server等节点);hbase-site.xml中的hbase.zookeeper.connection.timeout(默认30000ms,可根据网络情况增大)。/var/log/hbase/hbase-*-regionserver-*.log),常见原因包括内存溢出(OOM)、GC停顿过长(调整hbase.regionserver.handler.count增加处理线程)、硬件故障(检查磁盘健康状态smartctl -a /dev/sda);cp $HBASE_HOME/conf/hbase-site.xml.default $HBASE_HOME/conf/hbase-site.xml);hbase hbck -j修复,或从备份恢复数据。