2011-12-23 49 views
2

爲了MultipleOutputFormat,我使用了版本0.20.2,
並且希望在作業完成後提取計數器。

如何在Hadoop中獲取計數器

我試圖谷歌一些有用的和實際的例子,但我不能。
任何人都可以顯示一個簡單的例子嗎?

回答

7

如果您要提交你的工作是這樣的:

Configuration conf = new Configuration(); 
    Job job = new Job(conf); 

    job.waitForCompletion(true); 

而且它已經完成(你可以叫這個,即使它的運行,但結果將不會被最終確認的話,因爲工作還沒有。尚未完成),您可以用搶計數器:

long counter = job.getCounters().findCounter(ExplorationReducer.UpdateCounter.UPDATED) 
    .getValue(); 

這是我在我的作業中使用的枚舉計數器的名稱:

勘探與ationReducer.UpdateCounter.UPDATED

如果你想你必須遍歷Counters對象後面墊襯結構的所有計數器。有一個迭代器。

+0

謝謝!你的示例代碼似乎是新的API。我發現Job類包含在org.apache.hadoop.mapreduce中。你也可以讓我看看舊的API嗎? – superscalar 2011-12-23 12:53:39

+0

我可以將我的源代碼更改爲新的API,但我不確定新的支持MultipleOutputFormat。 – superscalar 2011-12-23 12:55:21

+0

啊有問題。不,格式不行,但是你可以從一個較新的hadoop版本中選擇格式,21.0,22.0或23.0,它們是兼容的。 – 2011-12-23 12:57:08

相關問題