我想获得在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
答案 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)'