2011-09-21 44 views

回答

2

你想達到什麼目的?這本質上是棘手的,因爲如果多個映射器試圖設置計數器呢?誰應該贏?計數器通常只會增加的原因是,這可以通過體系結構非常快速且高效地完成。

+0

基本目的是將一段信息與作業運行相關聯。 –

+1

日誌可以做到這一點 –

1

您不能設置計數器,因爲計數器是從每個任務中求和並彙總到一個頂級計數器中。

我在MapReduce作業中使用了ZooKeeper,用於小型通信或任務之間的協調或標記作業或任務中發生的某些事情。

+0

確實,至少使用Hadoop API無法重置計數器。 –

0

至少正如@orangeoctupus指出的那樣,這也無法從Hadoop API完成。 我用於實現這一目的的方法是在作業的上下文屬性中設置值。最後,可以在作業運行後讀取屬性。非典雅但是解決方法!

0

接口org.apache.hadoop.mapreduce.Counter defines a method setValue,但如果它看起來像基於描述的全局工作,我會同意其他答案,並沒有太多的用例,它也是好主意......

相關問題