多个映射器将输出写入单个文件

时间:2019-01-17 04:18:13

标签: hadoop hive hadoop2 mapper

我是hadoop的新手,但遇到了问题。我有一个用例,我想在大约2GB大小的文件上运行仅地图作业。我使用CombineHiveInputFormat创建了4个大小为512MB的分割,并为每个分割生成了4个映射器。但是,当这些映射器尝试将其输出写入单个输出文件时,我发现一些数据差异。多个映射器是否可以将其输出写入同一文件?如果是这样,我需要做些什么来实现这一目标?

谢谢。

1 个答案:

答案 0 :(得分:0)

通常在 MapReduce 作业中,映射器不会写入任何 HDFS 文件。相反,它们将数据传递到IdentityReducer,然后将输出写入文件(如果使用多个reducer,则将多个文件写入)。

尝试在您的客户代码中进行设置:

  //...
  conf.setReducerClass(IdentityReducer.class);
  conf.setNumReduceTasks(1);