我已启用xml文件中的日志: yarn-site.xml
,我重新开始 yarn
通过这样做:
sudo service hadoop-yarn-resourcemanager restart
sudo service hadoop-yarn-nodemanager restart
我运行了我的应用程序,然后我看到 applicationID
在 yarn application -list
. 所以,我这样做: yarn logs -applicationId <application ID>
,我得到如下结果:
hdfs://<ip address>/var/log/hadoop-yarn/path/to/application/ does not have any log files
我需要更改其他配置吗?还是我访问日志的方式不对?
谢谢您。
4条答案
按热度按时间x7rlezfr1#
启用日志聚合
在中启用日志聚合
yarn-site.xml
文件。warn.log-aggregation-enable属性为正在运行的应用程序启用日志聚合。w8rqjzmb2#
它可能是另一个所有者保存的。您可以尝试在命令中指定应用程序所有者:
Yarn原木-所有者-应用程序id。。
tyg4sfes3#
在hadoop 2.3.2版及更高版本中,您可以使用yarn-site.xml中的此配置在运行的作业上每小时进行一次日志聚合:
有关更多详细信息,请参见:https://docs.hortonworks.com/hdpdocuments/hdp2/hdp-2.3.2/bk_yarn_resource_mgt/content/ref-375ff479-e530-46d8-9f96-8b52dadb5183.1.html
mccptt674#
将只列出处于已提交、已接受或正在运行状态的应用程序。
日志聚合收集每个容器的日志,并将这些日志移动到中配置的目录中
yarn.nodemanager.remote-app-log-dir
只有在申请完成之后。请参阅的说明yarn.log-aggregation-enable
这里的财产。所以
applicationId
命令列出的日志尚未完成,日志尚未收集。因此,在尝试访问正在运行的应用程序的日志时你可以尝试同样的命令
yarn logs -applicationId <application ID>
在应用程序完成后查看日志。要列出所有完成的应用程序,请使用
或者列出所有的应用程序