2016-09-07 27 views
0

我正在运行OOZIE工作流程并在map-reduce操作中执行仅地图分布式模型拟合。由于有很多映射器,我写了一个代码,它使用yarn logs -applicationId application_x编译所有映射器任务的YARN日志,其中application_x是所有映射任务的父应用程序ID。现在我想将此汇总作为工作流程的一部分,因此我需要动态获取application_x这是上一个操作的应用程序标识。有什么办法可以解决这个问题?在后续操作中获取YARN操作应用程序ID

回答

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. 

所以在之后的地图减少作业的节点已完成,你应该能够使用的东西likeL

wf:actionExternalId('mapred-node-name') 

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