我想出了一种按尺寸列出纱线正在运行的应用的方法。因为大小分为“分配的MB”和“分配的VCore”,所以我决定假定一个VCore约为10000 MB。
# 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部分。
答案 0 :(得分:1)
有没有人看到一种更有效的方式来编写JQ部分
为了提高效率,最好在排序之前进行选择。您的过滤器也可以稍微简化一下:
.apps.app
| map(select(.state == "RUNNING"))
| sort_by(.allocatedMB + .allocatedVCores * 10000)
| reverse[]
| {name, allocatedMB, allocatedVCores, user, id, trackingUrl}