如何访问首次尝试的纱线日志?

kec*_*cso 1 logging hadoop-yarn

如果我使用_ trypid后缀,我会得到给定的尝试日志吗?像这样:

yarn logs -applicationId application_11112222333333_444444_1
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我没有在网上找到答案。

更新:让我重新表述我的问题:如何访问给定尝试的纱线记录?

pru*_*nko 5

这是一个难看的步骤,但需要几个步骤来解决(针对hadoop-2.6)。基本上,每次尝试都在其容器中执行。要获取特定容器的日志,需要知道applicationId,containerId和节点管理器地址。例如,您需要获取appattempt_1的日志:

  1. 若要获取有关appattempt(数据筒,主机URL)信息: yarn applicationattempt -list application_ID_1。您将获得以下内容:
==================================================== == ========================== 
  ApplicationAttempt-Id状态AM-容器-Id跟踪URL         
 ==================================================== == ========================== 
  appattempt_1失败的容器_1 https:// host1:8090 / blabla  
  appattempt_2杀害的容器_2 https:// host2:8090 / blabla  
 ==================================================== == ========================== 
  1. 要将tracking-URL转换为节点地址: $ yarn node -list -all | grep host1 | awk '{print $1}' host1:8041

  2. yarn logs -applicationId application_ID_1 -containerId container_1 -nodeAddress host1:8041

在hadoop-2.7中,您可以使用:

纱线记录-applicationId [选项]

常规选项是:
 -am打印AM容器日志
                                         这个应用程序。指定
                                         以逗号分隔的值以获取日志
                                         用于相关的AM容器。对于
                                         例如,如果我们指定-am 1,2,
                                         我们将获得
                                         第一个AM容器以及
                                         第二个AM容器。获取日志
                                         对于所有AM容器,请使用-am
                                         所有。获取最新的日志
                                         AM容器,使用-am -1。通过
                                         默认情况下,它将打印所有
                                         可用的日志。与...合作
                                         -log_files仅获取特定的
                                         日志。