在后续操作中获取YARN操作应用程序ID

时间:2016-09-07 14:14:25

标签: hadoop yarn oozie

我正在运行OOZIE工作流程,并在map-reduce操作中仅执行地图分布式模型拟合。由于有许多映射器,我编写了一个代码,使用yarn logs -applicationId application_x编译所有映射器任务的YARN日志,其中application_x是所有映射任务的父应用程序ID。现在我想将此摘要作为工作流的一部分,因此我需要动态获取application_x,这是前一个操作的应用程序ID。我有什么方法可以得到这个吗?

1 个答案:

答案 0 :(得分:2)

我没有对此进行过测试,但我认为您可以使用工作流EL功能来实现这一目标:

wf:actionExternalId(String node)

It returns the external Id for an action node, or an empty string if
the action has not being executed or it has not completed yet.

因此,在地图缩减作业完成后的节点中,您应该可以使用类似于

的内容
wf:actionExternalId('mapred-node-name')

我怀疑它会返回job_xxx而不是application_xxx,但你可以处理它。