通过 REST API 从 Yarn 查询节点标签拓扑 [MapR 6.1/Hadoop-2.7]



有一个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 在每个nodenodeLabels上,如果你只需要节点标签的列表。如果需要指定标签的所有节点,请按节点标签进行筛选。

这确实意味着,您始终必须查询所有节点,然后按NodeLabels排序/过滤/排列,这是很多客户端的魔术。但显然没有GetNodesToLabel甚至GetClusterNodeLabels来帮助我们。

我认为getLabelsToNodes只是一个客户端实现,因为该协议没有定义 API,所以除非在 Web 服务中实现,否则它就在 REST 的窗口之外。

最新更新