我想出了一种按大小列出yarn正在运行的应用程序的方法。因为大小分为已分配的MB和已分配的VCore,所以我决定假设一个VCore大约是10000MB。
# Uses httpie and jq, or you could use curl with -H Content-Type:application/json
http http://yarn-web-ui-url:port/ws/v1/cluster/apps|jq '
.apps.app
| sort_by(.allocatedMB + .allocatedVCores * 10000)
| reverse
| .[]
| select(.state == "RUNNING")
| {name, allocatedMB, allocatedVCores, user, id, trackingUrl}' |
less
但是有什么方法可以直接在UI中做到这一点吗?如果没有,没有人看到更有效的方法来编写JQ部分。
有人看到写JQ部分的更有效的方法吗
为了提高效率,最好在排序之前进行选择。您的过滤器也可以稍微简化:
.apps.app
| map(select(.state == "RUNNING"))
| sort_by(.allocatedMB + .allocatedVCores * 10000)
| reverse[]
| {name, allocatedMB, allocatedVCores, user, id, trackingUrl}