分享

关于yarn日志的新手求教

sinv2015 发表于 2017-4-10 12:34:55 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 7 10366
本帖最后由 sinv2015 于 2017-4-10 15:59 编辑

问题1:据网上资料说,mapreduce日志分为作业运行日志(又称历史作业日志)和任务运行日志 (Container 日志),这里我们知道,作业运行由MRAppMaster(MapReduce作业的ApplicationMaster)产生,是否可以认为描述的是ApplicationMaster运行的日志?而任务运行日志(Container)则存储于本地,MapReduce作业的ApplicationMaster也运行在Container中,且是编号为000001的Container。那这个Container0001记录的日志和作业运行日志记录的有什么区别。
问题2:作业运行日志将被写在hdfs上,首先写在${ mapreduce.jobhistory.intermediate-done-dir}/${username}目录下,作业完成后再转到${yarn.app.mapreduce.am.staging-dir}/history/done目录下。再谈谈任务运行日志,它可以设置聚合操作,然后上传到HDFS上,默认路径为/tmp/logs。那么问题来了,我们知道jobhistory server,他能显示job的信息,可以确定他采集了聚合的任务运行日志,但是我不确定历史作业日志他是否采集了








已有(7)人评论

跳转到指定楼层
einhep 发表于 2017-4-10 15:19:36


楼主看下图,在理解上有些偏差。

history.jpg

第一个问题:
ApplicationMaster是管理container的,肯定是管理的日志,具体运行日志,则是Container来负责。

第二个问题:
是否采集,看你的配置,如果你配置聚合,那他肯定就采集,如果你没配置,它就不会采集。
还有一点,二者日志组合为history日志。并不是ApplicationMaster的日志就是history日志。
回复

使用道具 举报

sinv2015 发表于 2017-4-10 16:02:08
关于问题1,虽然 ApplicationMaster是管理container的,但是ApplicationMaster本身也是一个container啊,它是由ResouceManager发起的,由NodeManager启动的Container,也就是说在本地上存在着ApplicationMaster的container000001
回复

使用道具 举报

NEOGX 发表于 2017-4-10 16:59:03
sinv2015 发表于 2017-4-10 16:02
关于问题1,虽然 ApplicationMaster是管理container的,但是ApplicationMaster本身也是一个container啊,它 ...

楼主说的对的。
hadoop2.x
应用程序日志包括jobhistory日志和Container日志,其中,jobhistory日志是应用程序运行日志,包括应用程序启动时间、结束时间、每个任务的启动时间、结束时间、各种counter信息等。
Container日志包含ApplicationMaster日志和普通Task日志,它们均存放${HADOOP_HOME}/userlogs/application_xxx目录下,其中ApplicationMaster日志目录名称为container_xxx_000001,普通task日志目录名称则为container_xxx_000002,container_xxx_000003...,同Hadoop 1.x 一样,每个目录下包含三个日志文件:stdout、stderr和syslog,且具体含义是一样的。

回复

使用道具 举报

sinv2015 发表于 2017-4-10 17:13:18
那jobhistory和ApplicationMaster Container存储的有什么区别么。jobhistory是用于显示jobhistory server的么
回复

使用道具 举报

easthome001 发表于 2017-4-10 17:20:44
本帖最后由 easthome001 于 2017-4-10 17:23 编辑
sinv2015 发表于 2017-4-10 17:13
那jobhistory和ApplicationMaster Container存储的有什么区别么。jobhistory是用于显示jobhistory server的 ...

对于这个还真没有权威的解释。有两种办法:
1.楼主亲自测试下。
2.可以到官网看看有没有权威说明。
###################
看了下官网,也没说明。
http://hadoop.apache.org/docs/r3.0.0-alpha2/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/HistoryServerRest.html

楼主可亲自测试下。

回复

使用道具 举报

sinv2015 发表于 2017-4-10 17:24:25
那我想问下,jobhistory server 上面的页面信息是不是从jobhistory上摘取的?然后jobhistory每个job都有logs,你会发现一个有趣的信息,程序在RUN状态下时,你调用logs,他应该是跳转到本地下的信息,而运行完毕的信息他会跳转到jobhistory上。
回复

使用道具 举报

sinv2015 发表于 2017-4-10 17:31:47
easthome001 发表于 2017-4-10 17:20
对于这个还真没有权威的解释。有两种办法:
1.楼主亲自测试下。
2.可以到官网看看有没有权威说明。

运行时如图: 11111111111111111111111111111111.JPG ,这应该是本地日志聚合上传到hdfs上之后,jobhistory拿去的消息吧?
运行完毕如图: 1111111111111111111111111111111111111111111.JPG ,可以看到这明显是jobhistory上的吧?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条