按尺寸对纱线的运行应用排名

时间:2018-08-01 05:40:40

标签: hadoop yarn jq

我想出了一种按尺寸列出纱线正在运行的应用的方法。因为大小分为“分配的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部分。

1 个答案:

答案 0 :(得分:1)

  

有没有人看到一种更有效的方式来编写JQ部分

为了提高效率,最好在排序之前进行选择。您的过滤器也可以稍微简化一下:

  .apps.app 
  | map(select(.state == "RUNNING"))
  | sort_by(.allocatedMB + .allocatedVCores * 10000) 
  | reverse[] 
  | {name, allocatedMB, allocatedVCores, user, id, trackingUrl}