CentOS 上 Hadoop 日志位置与查看方法
一、常见日志目录与组件对应
- 下表汇总了 HDFS 与 YARN 的核心日志默认存放位置与典型文件名(实际路径可能因安装方式、发行版与自定义配置而不同)。
| 组件 |
常见本地路径 |
典型日志文件示例 |
备注 |
| NameNode |
$HADOOP_HOME/logs 或 /var/log/hadoop-hdfs |
hadoop--namenode-.log |
可在 hadoop-env.sh 中通过 HADOOP_LOG_DIR 自定义 |
| DataNode |
$HADOOP_HOME/logs 或 /var/log/hadoop-hdfs |
hadoop--datanode-.log |
每个数据节点本机一份 |
| SecondaryNameNode |
$HADOOP_HOME/logs 或 /var/log/hadoop-hdfs |
hadoop--secondarynamenode-.log |
与 NameNode 类似 |
| ResourceManager |
$HADOOP_HOME/logs 或 /var/log/hadoop-yarn |
yarn--resourcemanager-.log |
也可在 yarn-env.sh 用 YARN_LOG_DIR 指定 |
| NodeManager |
$HADOOP_HOME/logs 或 /var/log/hadoop-yarn |
yarn--nodemanager-.log |
每个计算节点本机一份 |
| MapReduce 历史作业日志 |
HDFS 上由 mapreduce.jobhistory.done-dir 指定 |
history 文件 |
通过 yarn logs -applicationId 聚合查看 |
| Container 日志 |
由 yarn.nodemanager.log-dirs 指定(本地磁盘) |
application_/container_/ |
常配合 NodeManager Web UI :8042 查看 |
- 以上路径与命名规则在 Apache Hadoop 与常见发行版(含 CDH)中广泛采用,具体以实际环境为准。
二、如何快速确认本机日志目录
- 查看环境变量(优先):
- echo $HADOOP_LOG_DIR
- echo $YARN_LOG_DIR
- 查看 Hadoop 配置是否覆盖日志目录:
- grep -n “hadoop.log.dir” $HADOOP_HOME/etc/hadoop/yarn-site.xml 2>/dev/null
- grep -n “yarn.nodemanager.log-dirs” $HADOOP_HOME/etc/hadoop/yarn-site.xml 2>/dev/null
- grep -n “mapreduce.jobhistory” $HADOOP_HOME/etc/hadoop/mapred-site.xml 2>/dev/null
- 若使用系统服务管理(systemd),也可用 journalctl 查看服务日志(服务需以 systemd 托管):
- journalctl -u hadoop-namenode -f
- journalctl -u hadoop-datanode -f
- journalctl -u hadoop-resourcemanager -f
- journalctl -u hadoop-nodemanager -f
三、常用查看命令
- 实时查看组件日志(本地文件):
- tail -f $HADOOP_HOME/logs/hadoop--namenode-.log
- tail -f $HADOOP_HOME/logs/yarn--nodemanager-.log
- 分页查看大日志:
- less $HADOOP_HOME/logs/yarn--resourcemanager-.log
- 按关键字过滤错误:
- grep -i “error|exception” $HADOOP_HOME/logs/hadoop--datanode-.log
- 聚合查看某个应用的所有容器日志(跨节点自动拉取):
- yarn logs -applicationId application_1234567890_0001
- 查看本机 NodeManager 上某应用的容器日志目录(本地磁盘):
- ls -l /yarn/container-logs/application_1234567890_0001/container_*/
四、通过 Web UI 查看
- HDFS NameNode UI:访问 http://:50070,在页面中可浏览 NameNode/SecondaryNameNode 日志入口(部分发行版/版本支持)。
- YARN ResourceManager UI:访问 http://:8088,进入 Applications → 选择应用 → Logs,可查看 ApplicationMaster 与各个 Container 的日志;也可直接打开 NodeManager Web UI :8042 浏览本地容器日志目录。