我是hadoop的新手,但遇到了问题。我有一个用例,我想在大约2GB大小的文件上运行仅地图作业。我使用CombineHiveInputFormat创建了4个大小为512MB的分割,并为每个分割生成了4个映射器。但是,当这些映射器尝试将其输出写入单个输出文件时,我发现一些数据差异。多个映射器是否可以将其输出写入同一文件?如果是这样,我需要做些什么来实现这一目标?
谢谢。
答案 0 :(得分:0)
通常在 MapReduce 作业中,映射器不会写入任何 HDFS 文件。相反,它们将数据传递到IdentityReducer
,然后将输出写入文件(如果使用多个reducer,则将多个文件写入)。
尝试在您的客户代码中进行设置:
//...
conf.setReducerClass(IdentityReducer.class);
conf.setNumReduceTasks(1);