Linux环境下Hadoop日志在哪看
小樊
40
2025-12-04 18:04:41
Linux下Hadoop日志查看指南
一 核心日志目录与命名
- 默认情况下,Hadoop 的系统服务日志位于各节点的 $HADOOP_HOME/logs。常见组件与命名示例:
- HDFS:hadoop-hdfs-namenode-.log、hadoop-hdfs-datanode-.log
- YARN:yarn--resourcemanager-.log、yarn--nodemanager-.log
- 日志会按大小滚动,常见滚动文件如:.log.1、.log.2…;同时会有 .out 与 .out.1… 的标准输出/错误文件。若未设置 $HADOOP_HOME,可先查找进程或查看常用安装路径(如 /usr/local/hadoop、/opt/hadoop)。
二 常用查看命令
- 进入日志目录并列出文件:
- cd $HADOOP_HOME/logs && ls -lh
- 实时查看某组件日志(以 NameNode 为例):
- tail -f $HADOOP_HOME/logs/hadoop-hdfs-namenode-.log
- 搜索错误关键字(跨日志文件):
- grep -R “ERROR” $HADOOP_HOME/logs/
- 分页查看大文件:
- less $HADOOP_HOME/logs/hadoop-*.log(在 less 中可用 / 搜索,按 q 退出)
三 作业与容器日志位置
- 在 YARN/MapReduce 中,作业日志分为历史作业日志与容器日志:
- 历史作业日志(JobHistory):默认在 ${yarn.app.mapreduce.am.staging-dir}/history/done 与 …/done_intermediate(由 yarn-site.xml 的 mapreduce.jobhistory.done-dir、mapreduce.jobhistory.intermediate-done-dir 等参数控制)。
- 容器日志(ApplicationMaster 与 Task):默认在 $HADOOP_HOME/logs/userlogs/ application_/container_/ 下,通常包含 stdout、stderr、syslog 三个文件。
四 通过 Web 界面查看
- HDFS NameNode Web UI:http://:50070
- YARN ResourceManager Web UI:http://:8088
- 在 Web 界面可查看节点、应用与容器状态,并跳转至对应日志,便于快速定位问题。
五 自定义日志路径与排查建议
- 自定义日志目录:
- 可在 $HADOOP_HOME/etc/hadoop/yarn-env.sh 中设置 YARN_LOG_DIR,或在 log4j.properties 中调整 ${hadoop.log.dir} 与滚动策略(如 MaxFileSize、MaxBackupIndex)。
- 快速排查步骤:
- 确认进程是否存活:执行 jps,核对 NameNode、DataNode、ResourceManager、NodeManager 是否存在。
- 若日志目录异常或权限不足,检查目录是否存在并可写;必要时调整 YARN_LOG_DIR 或 log4j.properties 配置。