如果我使用_attemptid后缀,我会得到给定尝试的日志吗?像这样:
yarn logs -applicationId application_11112222333333_444444_1
奇怪的是,我在网上没有找到答案。
更新:让我重新表述我的问题:如何访问给定尝试的纱线日志?
这里有一个有点难看但分几个步骤运行的解决方案(对于hadoop-2.6)。基本上,每次尝试都在它的容器中执行。要获取特定容器的日志,需要知道applicationId、containerId和节点管理器地址。例如,您需要获取appattempt_1:的日志
- 要获取有关apptry的信息(containerId,主机url):CCD_ 1。你会得到这样的东西:
======================================================ApplicationAttempt Id State AM容器Id跟踪URL====================================================appattempt_1失败的容器_1https://host1:8090/blablaappattempt_2杀死容器_2https://host2:8090/blabla====================================================
-
要将跟踪URL转换为节点地址:
$ yarn node -list -all | grep host1 | awk '{print $1}' host1:8041
-
yarn logs -applicationId application_ID_1 -containerId container_1 -nodeAddress host1:8041
在hadoop-2.7中,您可以只使用:
纱线日志-applicationId〔OPTIONS〕一般选项包括:-am打印的am容器日志此应用程序。具体说明逗号分隔值以获取日志用于相关AM容器。对于例如,如果我们指定-am 1,2,我们将获取第一个AM容器以及第二个AM容器。获取日志对于所有AM容器,请使用-AM所有。获取最新日志AM容器,使用-AM-1。通过默认情况下,它将打印所有可用日志。一起工作-只获取特定的日志文件日志