“任务输出的提交”在OutputCommitter中意味着什么

时间:2012-08-05 19:43:13

标签: hadoop mapreduce

我正在阅读有关MapReduce框架的OutputCommitter的文档,我不明白这个特殊的解释:
“提交任务输出。任务完成后,如果需要,任务将提交输出。”

2 个答案:

答案 0 :(得分:5)

通常它只是意味着将输出从临时目录移动到指定的输出目录。通常,这两个目录都在HDFS上。

答案 1 :(得分:0)

  

任务的提交阶段是可选的,可以通过从needsTaskCommit()返回false来禁用。这使得框架不必为该任务运行分布式提交协议,并且既不调用commitTask()也不调用abortTask()。当任务没有写入输出时,FileOutputCommitter将跳过提交阶段   如果任务成功,则调用commitTask(),在默认实现中将临时任务输出目录(其名称中具有任务尝试ID以避免任务尝试之间的冲突)移动到最终输出路径$ {mapred.output为.dir}。

**注意:本段来自hadoop-权威指南,可能对此问题有用