yarn application -list:如何筛选今天或过去 24 小时的列表?

yarn application -list: How to filter list for today or last 24 hours?

我正在尝试列出 Hadoop 集群上的应用程序 运行。我可以获得按申请状态过滤的列表,如下所示:

>yarn application -list -appStates FINISHED

但这仍然会提取整个历史记录(过去 4-5 天,我猜是基于 Yarn Timeline 服务器配置)。

有没有办法按特定日期或过去 24 小时之类的内容进行过滤?

您可以使用 RM 应用程序 API 来执行此操作。对于简单的测试,您可以 运行:

$ date +"%s"
1495215569
$ let x=1495215569-86400
$ echo $x
1495129169
$ curl 'RMURL/ws/v1/cluster/apps?startedTimeBegin=1495129169000' | python -m json.tool

这将提取日期为 运行 减去一天(86400 秒)时启动的应用程序并显示它们。您需要添加 000,因为时间参数需要毫秒而不是秒。支持的参数是:

  • startedTimeBegin - 开始时间从这个时间开始的应用程序,指定自纪元以来的毫秒数
  • startedTimeEnd - 开始时间以此时间结束的应用程序,自纪元以来以毫秒为单位指定
  • finishedTimeBegin - 完成时间从这个时间开始的应用程序,自纪元以来以毫秒为单位指定
  • finishedTimeEnd - 结束时间以此时间结束的应用程序,自纪元以来以毫秒为单位指定

有关详细信息,请参阅 https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Applications_API