3

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

4

2 回答 2

5

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

于 2012-08-06T02:06:25.967 回答
0

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

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

于 2015-11-13T07:06:27.690 回答