如何在HDFS上查看YARN历史作业运行日志

2018-04-01 20:49:35 浏览数 (1)

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢

1.文档编写目的


在未开通Yarn Web界面端口8088,或者开通了8088,没有开通单个NodeManager如8042时,在MapReduce作业有失败时,往往我们没法直接通过界面查看某个container具体报错日志,从而不方便分析作业出错原因。这时,我们可以在HDFS上查看MapReduce的历史作业日志。本篇文章主要介绍如何通过HDFS查看YARN历史作业Container日志。

  • 内容概述

1.提交作业

2.查看Container日志

  • 测试环境

1.CM和CDH版本为5.11.2

2.作业提交


这里我们通过一个作业来说明日志的存储路径,首先在命令行向集群提交一个作业:

代码语言:txt复制
hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 5 5

控制台输出日志如下,提示:代码块部分可以左右滑动查看噢

代码语言:txt复制
Number of Maps  = 5
Samples per Map = 5
Wrote input for Map #0
Wrote input for Map #1
Wrote input for Map #2
Wrote input for Map #3
Wrote input for Map #4
Starting Job
17/12/26 06:42:09 INFO hdfs.DFSClient: Created token for fayson: HDFS_DELEGATION_TOKEN owner=fayson@CLOUDERA.COM, renewer=yarn, realUser=, issueDate=1514288529674, maxDate=1514893329674, sequenceNumber=568, masterKeyId=150 on ha-hdfs:nameservice1
17/12/26 06:42:09 INFO security.TokenCache: Got dt for hdfs://nameservice1; Kind: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, Ident: (token for fayson: HDFS_DELEGATION_TOKEN owner=fayson@CLOUDERA.COM, renewer=yarn, realUser=, issueDate=1514288529674, maxDate=1514893329674, sequenceNumber=568, masterKeyId=150)
17/12/26 06:42:09 INFO input.FileInputFormat: Total input paths to process : 5
17/12/26 06:42:09 INFO mapreduce.JobSubmitter: number of splits:5
17/12/26 06:42:10 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1514262166956_0009
17/12/26 06:42:10 INFO mapreduce.JobSubmitter: Kind: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, Ident: (token for fayson: HDFS_DELEGATION_TOKEN owner=fayson@CLOUDERA.COM, renewer=yarn, realUser=, issueDate=1514288529674, maxDate=1514893329674, sequenceNumber=568, masterKeyId=150)
17/12/26 06:42:10 INFO impl.YarnClientImpl: Submitted application application_1514262166956_0009
17/12/26 06:42:10 INFO mapreduce.Job: The url to track the job: http://ip-172-31-21-45.ap-southeast-1.compute.internal:8088/proxy/application_1514262166956_0009/
17/12/26 06:42:10 INFO mapreduce.Job: Running job: job_1514262166956_0009

3.查看各个Container的日志


在CDH上默认将yarn.log-aggregation-enable参数设置为true,使运行完成的任务将日志推送到HDFS上,以方便作业日志集中管理和分析。

在HDFS上任务运行日志存储在

1.使用命令浏览Fayson用户执行的作业日志

代码语言:txt复制
hadoop fs -ls /tmp/logs

可以看到/tmp/logs目录下存储了所有用户执行作业的log日志。

2.查看刚刚只是的MapReduce作业,可以看到各个Container的作业日志

代码语言:txt复制
hadoop fs -ls /tmp/logs/fayson/logs/application_1514262166956_0009

命令行黄底部分为JobID,可以通过Cloudera Manager的Yarn服务”应用程序”界面查看

3.查看各个Container的日志

代码语言:txt复制
hadoop fs -cat /tmp/logs/fayson/logs/application_1514262166956_0009/ip-172-31-22-86.ap-southeast-1.compute.internal_8041|more

那么在任务未运行完时,Container的作业日志是存放在各个节点的yarn.nodemanager.log-dirs目录下。

当任务运行完成后,上述两个目录的日志会被聚合到HDFS的/tmp/logs/{user}/logs/{JobID}目录下并删除本地日志文件。

为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看

0 人点赞