由yarn的restapi返回的排序结果

tzdcorbm  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(350)

我想获取在resourcemanager上运行的每个应用程序。我使用的是Yarn附带的restapi

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

这个api调用返回我要查找的结果。但我想按开始时间降序排列。我得到的结果没有按任何特定顺序排序(我认为它是使用应用程序id按字典顺序排序的,但我不确定)。文档给出了api接受的参数列表,但是我没有看到任何方法来对结果进行排序。如果restapi不支持排序,那么还有其他方法可以对结果进行排序吗?
我下面的文档是
https://hadoop.apache.org/docs/r2.7.0/hadoop-yarn/hadoop-yarn-site/resourcemanagerrest.html

gj3fmq9x

gj3fmq9x1#

如果您使用的是命令行,那么可以使用 jq :

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

inkz8wg92#

假设得到的是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

相关问题