2012-08-05 40 views
3

我正在閱讀關於MapReduce框架的OutputCommitter的文檔,我不明白這個特殊的解釋:
「提交任務輸出一旦任務完成,任務將在需要時提交輸出。「OutputCommitter中的「提交任務輸出」意味着什麼

+0

是關於輸出數據移動到HDFS或類似的東西是有用的? – kee 2012-08-05 23:15:08

+0

您可以通過編輯問題將您的評論整合到問題中,然後刪除評論。 – AST 2015-08-05 14:02:08

回答

5

通常,它意味着將輸出從臨時目錄移動到指定的輸出目錄。通常,這兩個目錄都在HDFS上。

0

任務的提交階段是可選的,並且可以通過從needsTaskCommit()返回false來禁用。這樣可以避免框架必須爲任務運行分佈式提交協議,也不會調用commitTask()和abortTask()。當輸出沒有被任務寫入時,FileOutputCommitter將跳過提交階段。
如果任務成功,則調用commitTask(),在默認實現中將臨時任務輸出目錄(其名稱中包含任務嘗試ID以避免任務嘗試之間的衝突)移動到最終輸出路徑$ {mapred .output.dir}。

**注:從Hadoop的權威指南本款可能爲這個問題