2016-09-07 110 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,但你可以處理那個確定。