温馨提示×

Linux环境下Hadoop日志在哪看

小樊
40
2025-12-04 18:04:41
栏目: 智能运维

Linux下Hadoop日志查看指南

一 核心日志目录与命名

  • 默认情况下,Hadoop 的系统服务日志位于各节点的 $HADOOP_HOME/logs。常见组件与命名示例:
    • HDFS:hadoop-hdfs-namenode-.loghadoop-hdfs-datanode-.log
    • YARN:yarn--resourcemanager-.logyarn--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.xmlmapreduce.jobhistory.done-dirmapreduce.jobhistory.intermediate-done-dir 等参数控制)。
    • 容器日志(ApplicationMaster 与 Task):默认在 $HADOOP_HOME/logs/userlogs/ application_/container_/ 下,通常包含 stdout、stderr、syslog 三个文件。

四 通过 Web 界面查看

  • HDFS NameNode Web UIhttp://:50070
  • YARN ResourceManager Web UIhttp://: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_DIRlog4j.properties 配置。

0