生成适当数量的减速器输出

时间:2013-07-31 17:37:11

标签: hadoop mapreduce output

我正在运行一个简单的地图并减少Hadoop工作。 mapred.reduce.tasks管理员已在Hadoop文件中设置了属性mapred-site.xml。说它是25.现在,我的工作只生成4个不同的密钥,因此25个part-r-xxxx文件中只有4个非空,其余为空文件。我该如何防止这种情况?我只想要生成多少个输出文件和生成的密钥数量(我之前不知道)。

感谢。

2 个答案:

答案 0 :(得分:1)

我建议使用LazyOutputFormat

LazyOutputFormat.setOutputFormatClass(job, TextOutputFormat.class);

这将确保仅在存在该减速器的某些实际数据时才创建输出文件。

答案 1 :(得分:0)

或者您也可以覆盖FileOutputCommitter的needsTaskCommit()函数。

选中此blog by Chris即可实现这一目标。