如何在 hadoop yarn 上获取应用程序运行时

How to get app runtime on hadoop yarn

yarn 会在 hdfs 上存储有关完成的应用程序的信息,包括运行时吗?我只是想通过hdfs上的一些文件来获取应用程序运行时(如果确实存在这样的文件,我已经检查了日志并且没有运行时信息)而不使用任何监控软件。

您可以使用ResourceManager REST获取所有已完成应用程序的信息。

http://resource_manager_host:port/ws/v1/cluster/apps?state=FINISHED

对URL的GET请求将return一个JSON响应(也可以获得XML)。必须为每个应用程序解析 elapsedTime 的响应以获得应用程序的 运行 时间。

要查找持久作业历史文件,您需要检查作业历史服务器或时间线服务器而不是资源管理器:

  1. 作业历史被聚合到 HDFS 上,可以从作业历史服务器 UI(或 REST API)中看到。历史文件存储在 HDFS 上的 mapreduce.jobhistory.done-dir

  2. 作业历史也可以通过时间线服务器(基于文件系统,又名 ATS 1.5)聚合,并且可以从时间线服务器 UI(或 REST API)中看到。历史文件存储在 HDFS 上的 yarn.timeline-service.entity-group-fs-store.done-dir