分享

关于YARN日志的一些问题

sinv2015 发表于 2017-3-31 18:37:40 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 7 18155
最近看了一些关于YARN日志的知识,有一些抑或,YARN中应用程序的日志分为jobhistory和Container日志,Container日志又分为Application日志和基本 Task日志,Container日志默认在logs目录下的userlogs下,分为stdout,stderr和syslog3个文件。Container在运行时,会将日志写入上述3个文件中。当task运行完毕后,会将这些Container日志进行聚合操作,然后上传到jobhistory Server的HDFS中,为它指定的路径参数为:
  • <property>
  •     <name>mapreduce.jobhistory.done-dir</name>
  •     <value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
  • </property>
但是我在jobhistory中,还有一个配置参数为:

  • <property>
  •     <name>mapreduce.jobhistory.intermediate-done-dir</name>
  •     <value>${yarn.app.mapreduce.am.staging-dir}
  •                          /history/done_intermediate</value>
  • </property>
上述的这个网上说是正在运行中的Hadoop作业记录,到底是什么意思,是在Container运行时也会讲日志上传到HDFS么?但是使用web端的时候正在运行状态的application调用的日志是本地日志而不是HDFS上的。
question.JPG

已有(7)人评论

跳转到指定楼层
einhep 发表于 2017-3-31 21:53:28
mapreduce.jobhistory.done-dir参数的意思是在什么目录下存放已经运行完的Hadoop作业记录;mapreduce.jobhistory.intermediate-done-dir的意思是正在运行的Hadoop作业记录。

到底是什么意思,是在Container运行时也会讲日志上传到HDFS么?但是使用web端的时候正在运行状态的application调用的日志是本地日志而不是HDFS上的。

Container与history是两码事的。调用的是本地日志是什么意思??楼主把配置贴出来看下。是否配置的就是本地
回复

使用道具 举报

sinv2015 发表于 2017-4-1 10:09:40
einhep 发表于 2017-3-31 21:53
mapreduce.jobhistory.done-dir参数的意思是在什么目录下存放已经运行完的Hadoop作业记录;mapreduce.jobhi ...

我的截图上的URL是hdp-slave1:8042这个是nodemanager端口,Container日志默认在logs目录下的userlogs下,分为stdout,stderr和syslog3个文件分是如图显示的下面3个,而运行完毕的log,我们查看日志,他的URL是如下图,可以看出,在run下的文件是hdp-slave1:8042这个节点上读取的。而finished状态的URL是hdp-slave1:19888/jobhistory,这个URL是调用的jobhistory上的。 question.JPG
回复

使用道具 举报

sinv2015 发表于 2017-4-1 10:15:46
einhep 发表于 2017-3-31 21:53
mapreduce.jobhistory.done-dir参数的意思是在什么目录下存放已经运行完的Hadoop作业记录;mapreduce.jobhi ...

如图:
question.JPG
回复

使用道具 举报

nextuser 发表于 2017-4-1 15:14:49

楼主说的有点模糊,猜测是想说url是本地的。无论是那个,个人认为都是不妥的。url可以是本地调用或则hadoop上调用。具体还需要在对应的目录中查找
回复

使用道具 举报

sinv2015 发表于 2017-4-1 15:17:37
nextuser 发表于 2017-4-1 15:14
楼主说的有点模糊,猜测是想说url是本地的。无论是那个,个人认为都是不妥的。url可以是本地调用或则hado ...

jobhistory 是将运行完毕的本地Container上的日志聚合然后上传到HDFS上,对吧?
回复

使用道具 举报

nextuser 发表于 2017-4-1 15:38:53
sinv2015 发表于 2017-4-1 15:17
jobhistory 是将运行完毕的本地Container上的日志聚合然后上传到HDFS上,对吧?

也不见得。可以做如下测试,先配置成下面
<property>
    <name>mapreduce.jobhistory.done-dir</name>
    <value>file:///usr/history/done</value>
</property>

<property>
    <name>mapreduce.jobhistory.intermediate-done-dir</name>
    <value>file:///history/done_intermediate</value>
</property>


然后在都修改为hdfs。
然后在一个hdfs,一个本地。
回复

使用道具 举报

sinv2015 发表于 2017-4-1 15:41:04
nextuser 发表于 2017-4-1 15:38
也不见得。可以做如下测试,先配置成下面

    mapreduce.jobhistory.done-dir

在很多书上写的这个配置的路径都是要求在HDFS上
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条