温馨提示×

linux hadoop如何查日志

小樊
51
2026-10-01 14:26:19
栏目: 智能运维

在 Linux 上使用 Hadoop 查日志,通常分 Hadoop 系统日志 和 作业(Job/Application)日志 两类。下面按常见场景说明。


一、Hadoop 系统日志(服务日志)

Hadoop 各组件(NameNode、DataNode、ResourceManager、NodeManager 等)日志默认在:

$HADOOP_HOME/logs/

常见文件示例:

$HADOOP_HOME/logs/
├── hadoop-root-namenode-node1.log
├── hadoop-root-datanode-node1.log
├── yarn-root-resourcemanager-node1.log
├── yarn-root-nodemanager-node1.log

查看方式

# 实时查看
tail -f $HADOOP_HOME/logs/hadoop-root-namenode-node1.log

# 查看错误
grep ERROR $HADOOP_HOME/logs/hadoop-root-datanode-node1.log

# 最近 100 行
tail -n 100 $HADOOP_HOME/logs/yarn-root-resourcemanager-node1.log

用户名(root)和主机名(node1)视实际环境而定。


二、YARN 作业日志(Application 日志)

1. 使用 yarn 命令查看

yarn logs -applicationId application_123456_0001

查看某任务的:

  • stdout
  • stderr
  • syslog

2. 常见用法

# 只看错误
yarn logs -applicationId application_123456_0001 | grep ERROR

# 查看容器日志
yarn logs -applicationId application_123456_0001 -containerId container_01

三、HDFS 上的历史作业日志

YARN 默认会把日志聚合到 HDFS:

/user/root/.logs/
或
/tmp/logs/

查看:

hdfs dfs -ls /tmp/logs/root/logs/application_123456_0001

四、Web UI 查日志(最直观)

  • NameNode UI
    http://namenode:9870
    
  • ResourceManager UI
    http://resourcemanager:8088
    
    → Applications → 某个 Application → Logs

五、MapReduce 任务日志

如果是 MapReduce:

yarn logs -applicationId application_xxx

或

mapred job -logs job_123456_0001

六、常见排错建议

# 服务起不来
tail -f $HADOOP_HOME/logs/*namenode*.log

# 任务失败
yarn logs -applicationId xxx | grep -A 20 Exception

# 磁盘/权限问题
grep -i "permission" $HADOOP_HOME/logs/*.log

如果你能告诉我:

  • 用的 Hadoop 版本(2.x / 3.x)
  • 查的是 NameNode / YARN / MapReduce / Spark on YARN
  • 是 服务起不来 还是 任务失败

我可以给你更精确的命令。

0 踩