簡體   English   中英

Java MapReduce計數器-Oozie

[英]Java MapReduce Counters - Oozie

Java應用程序在Hadoop集群中作為map-reduce任務與單個Mapper任務一起執行。 如果java mapreduce作業(不是配置單元或任何其他作業,只是直接mapreduce作業)是oozie的一部分,我們將獲得一個單獨的mapper啟動器,並且實際的mapreduce作業將獨立運行。 那么,有沒有辦法將啟動器和實際的mapreduce作業鏈接起來? 像使用啟動器jobid獲取運行的實際操作的jobid? 有什么命令要知道嗎?

您可以進入oozie UI並獲取此信息。 單擊所需的操作,然后轉到“ Child Job URLs選項卡。 在這里,您可以找到由特定操作啟動的所有子作業。

oozie中的java動作,沒有子網址:

在此處輸入圖片說明

帶子網址標簽的oozie中的map-reduce動作:

在此處輸入圖片說明

對於map-rdeuce作業,您可以訪問“ Child Job URLs選項卡並獲取所有子mapreduce作業URL。

理想的方法是使用oozie客戶端Java API。 該API將幫助您獲取工作流ID,然后從中獲取外部ID,即實際的hadoop作業ID。 參照這個這個

另一種方法是使用oozie客戶端Web服務api。 這將返回特定工作流程的整個工作詳細信息的json。 然后,您可以添加一個json解析器以從中提取externalID以獲得實際的hadoop作業ID。 請參閱以獲取現有的Web服務URL。

我們可以從以下日志鏈接中獲取任何子ID的啟動器ID:

http://<rm httpaddress:port>/ws/v1/history/mapreduce/jobs/<jobid>/jobattempts

在那里,我們得到一個包含日志鏈接的xml。 如果我們通過該鏈接中的syslog進行解析,我們將得到一個類似

Service: job_

使用此正則表達式找出啟動器ID。 如果有啟動器,那么我們可以從這里獲取它。(即使是oozie工作流中的java操作)實際的行也將是這樣的

INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Kind: mapreduce.job, Service: <jobid>

Service:之后的Jobid是啟動器Job ID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM