由 Yarn 的 REST API 返回的排序结果



我想获得在ResourceManager上运行的每个应用程序。我正在使用Yarn附带的REST API,特别是

http://<rm http address:port>/ws/v1/cluster/apps

这个API调用返回我正在查找的结果。但我想按开始时间降序进行排序。我得到的结果没有按任何特定的顺序排序(我认为它是使用应用程序id按字典顺序排序的,但我不确定)。文档给出了API接受的参数列表,但我看不到任何对结果进行排序的方法。如果REST API不支持排序,那么是否有其他方法对结果进行排序?

我下面的文件是这个

https://hadoop.apache.org/docs/r2.7.0/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html

假设您获得json格式的响应,那么您可以使用python对其进行排序!

http://<rm http address:port>/ws/v1/cluster/apps |  python -c "import json,sys;from pprint import pprint; pprint(sorted(json.load(sys.stdin)['apps']['app'], key=lambda k: k['startedTime'], reverse=True))"|grep id

如果使用命令行,可以使用jq:

curl 'http://<rm http address:port>/ws/v1/cluster/apps' | jq '.apps.app | sort_by(-.startedTime)'

最新更新