有一个Java和CLI接口来查询Yarn RM的节点到节点标签(和反向(映射。有没有办法通过 REST-API 做到这一点?最初的 RM-API 搜索显示,仅选择基于节点标签的作业提交。
可悲的是,这实际上在 MapR-Hadoop(截至 6 年 6 月 19 日的 6.1(中被破坏了,所以我的代码必须通过实现正确的调度本身来解决这个问题。这可以使用 YarnClient Java API 工作(这里也几乎没有 - 更多损坏的 API(。
但是,由于我想同时针对不同的资源管理器安排作业,在防火墙后面,REST-API 是实现这一目标的最引人注目的选项,而 YarnClient API 的 RPC 后端无法轻松传输。
我目前最糟糕的解决方案是以某种方式解析YARN-WebUI。
到目前为止我找到的唯一解决方案:请求/ws/v1/cluster/nodes
- 这将获取所有节点。
FlatMap/Distinct 在每个node
的nodeLabels
上,如果你只需要节点标签的列表。如果需要指定标签的所有节点,请按节点标签进行筛选。
这确实意味着,您始终必须查询所有节点,然后按NodeLabels
排序/过滤/排列,这是很多客户端的魔术。但显然没有GetNodesToLabel
甚至GetClusterNodeLabels
来帮助我们。
我认为getLabelsToNodes
只是一个客户端实现,因为该协议没有定义 API,所以除非在 Web 服务中实现,否则它就在 REST 的窗口之外。