通过RESTAPI从纱线中查询节点标签拓扑[MapR 6.1/Hadoop-2.7]

通过RESTAPI从纱线中查询节点标签拓扑[MapR 6.1/Hadoop-2.7],rest,hadoop,yarn,mapr,Rest,Hadoop,Yarn,Mapr,有一个Java和CLI接口来查询节点到节点标签(和反向)映射。有没有办法也通过REST-API实现这一点? 最初的RM-API搜索仅显示基于节点标签的作业提交作为选项 不幸的是,maprhadoop(从6/6/19开始的6.1版本)实际上已经破坏了这一点,因此我的代码必须通过实现正确的调度来解决这一问题。这可以使用YarnClient Java API工作(这里也只有很少的坏API) 但是,由于我想同时针对不同的资源管理器调度作业,在防火墙后面,REST-API是实现这一点的最有吸引力的选择,而

有一个Java和CLI接口来查询节点到节点标签(和反向)映射。有没有办法也通过REST-API实现这一点? 最初的RM-API搜索仅显示基于节点标签的作业提交作为选项

不幸的是,maprhadoop(从6/6/19开始的6.1版本)实际上已经破坏了这一点,因此我的代码必须通过实现正确的调度来解决这一问题。这可以使用YarnClient Java API工作(这里也只有很少的坏API)

但是,由于我想同时针对不同的资源管理器调度作业,在防火墙后面,REST-API是实现这一点的最有吸引力的选择,而YanClient API的RPC后端无法轻松传输


我目前最糟糕的解决方案是以某种方式解析Thread WebUI。

到目前为止,我找到的唯一解决方案是: 请求
/ws/v1/cluster/nodes
-这将获取所有节点

如果只需要节点标签列表,请在每个
节点的
节点标签上使用FlatMap/Distinct。如果需要指定标签的所有节点,请按nodeLabel筛选

这意味着您必须始终查询所有节点,然后按
节点标签
排序/过滤/排列,这是客户端的一大魔法。但很明显,没有人甚至没有人来帮助我们


我假设它只是一个客户端实现,因为协议没有定义API,所以这是REST的窗口,除非在Web服务中实现。

到目前为止,我找到的唯一解决方案是: 请求
/ws/v1/cluster/nodes
-这将获取所有节点

如果只需要节点标签列表,请在每个
节点的
节点标签上使用FlatMap/Distinct。如果需要指定标签的所有节点,请按nodeLabel筛选

这意味着您必须始终查询所有节点,然后按
节点标签
排序/过滤/排列,这是客户端的一大魔法。但很明显,没有人甚至没有人来帮助我们


我假设它只是一个客户端实现,因为协议没有定义API,所以这对于REST来说是不可能的,除非在Web服务中实现。

Hmm。。。。你被纱线缠住了吗?听起来你的需求超出了它的设计范围。另外,你能直接打电话给我吗(tdunning@mapr)因此,如果MapR的纱线包装有破损,我们可以提出支持票?这些问题已经在MAPRYARN-191下进行了跟踪。关于设计——我有一个使用纱线的工作解决方案,我只想让它更便携,通过使用REST-API访问纱线。我发现了一些未记录的API,它似乎给出了每个节点的标签,现在看看MaprThread是否正确地提供了这些端点的值。。。。你被纱线缠住了吗?听起来你的需求超出了它的设计范围。另外,你能直接打电话给我吗(tdunning@mapr)因此,如果MapR的纱线包装有破损,我们可以提出支持票?这些问题已经在MAPRYARN-191下进行了跟踪。关于设计——我有一个使用纱线的工作解决方案,我只想让它更便携,通过使用REST-API访问纱线。我发现了一些未记录的API,它似乎给出了每个节点的标签,现在可以查看MaprThread是否正确地提供了这些端点的值。