Cly*_*ruz 3 hadoop hadoop-yarn apache-spark
我在YARN集群上运行了一些Spark应用程序.该应用程序显示在YARN UI http:// host:8088/cluster的"所有应用程序"页面中,但该yarn application -list
命令不会给出任何结果.可能是什么原因造成的?
Man*_*lur 15
当您使用"-list"选项而没有"-appTypes"或"-appStates"选项时,它会对"application-types"和"states"应用默认过滤(请查看下面突出显示的部分).如果您的应用程序都没有与默认过滤匹配,那么您将无法获得任何结果.
应用程序总数(应用程序类型:[]和状态:[提交,接受,运行]):0
如果您看到"-list"的帮助,则说明以下内容:
"列出应用程序.支持可选地使用-appTypes根据应用程序类型过滤应用程序,并使用-appStates根据应用程序状态过滤应用程序 ".
这似乎有点误导.
如果未指定"-appStates",则默认情况下将状态设置为"SUBMITTED","ACCEPTED"和"RUNNING",以进行过滤.请从"org.apache.hadoop.yarn.client.cli.ApplicationCLI.java"的"listApplications()"方法中检查以下代码.
private void listApplications()
{
............
if (allAppStates) {
for (YarnApplicationState appState : YarnApplicationState.values()) {
appStates.add(appState);
}
} else {
if (appStates.isEmpty()) {
appStates.add(YarnApplicationState.RUNNING);
appStates.add(YarnApplicationState.ACCEPTED);
appStates.add(YarnApplicationState.SUBMITTED);
}
}
............
}
Run Code Online (Sandbox Code Playgroud)
根据上面的代码,应用以下逻辑:
CMD>纱线应用 - 清单
应用程序总数(应用程序类型:[]和状态:[提交,接受,运行]):0
CMD> yarn application -list -appstates ALL
所有应用程序总数(应用程序类型:[]和状态:[NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED]):268
CMD>纱线应用-list -appStates FINISHED
申请总数(申请类型:[] 和州:[已完成]):136
事实证明,我在 YARN 中启用了日志聚合,但已将yarn.nodemanager.remote-app-log-dir设置为自定义 hdfs 目录(/tmp/yarnlogs),因此日志实际上在 /tmp/yarnlogs 中聚合HDFS,但yarn命令仍在HDFS上的默认位置(/tmp/logs)搜索日志。因此,将属性更改为默认值对我来说修复了它。
注意:
如果日志聚合目录配置错误,它也会在尝试从 Web UI 访问作业历史记录时导致错误,如下所示:
Log aggregation has not completed or is not enabled
归档时间: |
|
查看次数: |
14319 次 |
最近记录: |