HDFS日志的默认存储路径与Hadoop安装目录相关,主要分为角色日志和审计日志两类:
/var/log/hadoop-hdfs/hadoop-<username>-namenode-<hostname>.log(如hadoop-hadoop-namenode-master.log)/var/log/hadoop-hdfs/hadoop-<username>-datanode-<hostname>.log(如hadoop-hadoop-datanode-slave1.log)secondarynamenode<username>为运行Hadoop服务的用户(如hadoop),<hostname>为主机名,可通过hostname命令查看。/var/log/Bigdata/audit/hdfs/目录下,按角色分类(如nn对应NameNode,dn对应DataNode)。tail -f命令可实时监控日志文件的新增内容,适用于故障排查时跟踪实时事件。例如查看NameNode日志:tail -f /var/log/hadoop-hdfs/hadoop-hadoop-namenode-master.log
cat(查看全部内容)、less(支持翻页查看)或more(分屏查看)命令。例如:less /var/log/hadoop-hdfs/hadoop-hadoop-namenode-master.log
journalctl命令查看systemd管理的HDFS服务日志,支持按服务名过滤和实时跟踪:# 查看NameNode服务日志
journalctl -u hadoop-namenode
# 实时跟踪日志变化
journalctl -f -u hadoop-namenode
# 筛选ERROR级别日志
journalctl -u hadoop-namenode -p ERROR
HDFS提供了Web界面方便查看NameNode、SecondaryNameNode等组件的日志,无需登录服务器:
http://<master-hostname>:50070(如http://master:50070,master为主节点主机名)为避免日志文件过大占用磁盘空间,HDFS日志通常会通过logrotate工具进行轮转(压缩旧日志、保留指定数量备份)。
/etc/logrotate.d/hadoop或/etc/logrotate.d/hdfs(具体以实际安装为准);/var/log/hadoop-hdfs/*.log {
daily
rotate 7
compress
missingok
notifempty
}
该配置会自动处理/var/log/hadoop-hdfs/目录下的所有.log文件。hadoop-env.sh文件中的HADOOP_LOG_DIR变量确认(该变量定义了日志的存储根目录);grep命令筛选关键词(如ERROR、WARN),快速定位问题:grep "ERROR" /var/log/hadoop-hdfs/hadoop-hadoop-namenode-master.log