对Yarn的REST API返回的结果进行排序

时间:2017-01-11 11:02:41

标签: rest hadoop yarn

我想获得在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

2 个答案:

答案 0 :(得分:0)

假设您以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

答案 1 :(得分:0)

如果您使用的是命令行,则可以使用jq

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