CentOS系统中,HBase日志默认存储在**$HBASE_HOME/logs**目录下($HBASE_HOME为HBase安装根目录),文件命名规则为hbase-<用户名>-hbase-<主机名>.log(如hbase-root-hbase-centos7.log)。此外,部分系统日志可能同步到/var/log/messages或/var/log/hbase目录。
tail -f命令跟踪日志文件的实时更新,例如:tail -f $HBASE_HOME/logs/hbase-root-hbase-centos7.log
grep命令筛选特定错误或关键字(如“ERROR”“WARN”),例如:grep "ERROR" $HBASE_HOME/logs/hbase-root-hbase-centos7.log
tail -f /var/log/messages查看系统级HBase日志。HBase使用Log4j框架管理日志级别,通过修改log4j.properties文件(位于$HBASE_HOME/conf目录)调整日志详细程度。日志级别从低到高依次为:TRACE(最详细)> DEBUG(调试)> INFO(默认,常规信息)> WARN(警告)> ERROR(错误)> FATAL(致命)。
log4j.properties文件:vi $HBASE_HOME/conf/log4j.properties
rootLogger配置项(通常位于文件顶部),修改日志级别:# 将INFO改为DEBUG(调试用)或ERROR(生产环境推荐)
log4j.rootLogger=DEBUG, console, file
$HBASE_HOME/bin/stop-hbase.sh
$HBASE_HOME/bin/start-hbase.sh
INFO或WARN级别,避免DEBUG/TRACE导致日志过多影响性能;org.apache.hadoop.hbase.regionserver)调整日志级别,可添加如下配置:log4j.logger.org.apache.hadoop.hbase.regionserver=DEBUG
```。
日志轮转可防止日志文件无限增长占用磁盘空间,HBase通过Log4j的RollingFileAppender实现,默认配置已在log4j.properties中定义。
# 日志文件路径(${hbase.rootdir}为HBase根目录,需替换为实际路径)
log4j.appender.file.File=${hbase.rootdir}/logs/hbase.log
# 单个日志文件最大大小(如10MB)
log4j.appender.file.MaxFileSize=10MB
# 保留的备份文件数量(如10个)
log4j.appender.file.MaxBackupIndex=10
当日志文件达到MaxFileSize时,会自动重命名为hbase.log.1、hbase.log.2等,保留最近的MaxBackupIndex个文件。
若需更灵活的轮转策略(如按天轮转),可通过/etc/logrotate.d/hbase文件配置。示例配置:
/var/log/hbase/*.log {
daily # 每天轮转
missingok # 忽略缺失文件
rotate 7 # 保留7天
compress # 压缩旧日志
delaycompress # 延迟压缩(避免压缩当天日志)
notifempty # 空日志不轮转
sharedscripts # 所有日志轮转完成后执行脚本
postrotate
/bin/kill -HUP $(cat /var/run/hbase.pid 2>/dev/null) 2>/dev/null || true
endscript
}
配置完成后,logrotate会每天自动执行轮转。
grep -c "ERROR" $HBASE_HOME/logs/hbase-root-hbase-centos7.logawk '/2025-09-20/,/2025-09-21/' $HBASE_HOME/logs/hbase-root-hbase-centos7.log审计日志用于记录用户对HBase表的访问操作(如读、写、删除),需修改hbase-site.xml配置文件:
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hbase.audit.log.enabled</name>
<value>true</value>
</property>
<property>
<name>hbase.audit.log.path</name>
<value>${hbase.rootdir}/logs/audit.log</value>
</property>
配置完成后,重启HBase服务,审计日志将写入${hbase.rootdir}/logs/audit.log文件。如需更详细的审计信息,可创建专门的审计表存储日志。