在Mapper类中执行Reducer操作

时间:2014-05-07 15:27:48

标签: java hadoop mapreduce

在我的mapper类中,我逐行读取文件并在每行执行一些字符串操作(即从字符串中删除特殊字符),然后在reducer中将每行存储在一个新文件中。

基本上我的reducer只创建文件并在新文件上写下每一行,因此我的mapper可能会创建文件而不是将数据传递给reducer。这意味着我不想要减速器并在映射器中执行其操作。 我对Mapreduce一无所知,所以任何类型的帮助都是可以理解的

1 个答案:

答案 0 :(得分:1)

是的,您想要的是非常可能的,您需要的是仅限地图的工作。即只有一台映射器但没有减速器的工作。

您可以通过在驱动程序类中将reducers的数量设置为0来实现它。

job.setNumReduceTasks(0);

可以找到关于此主题的更详细的博客here

为每个输入行生成文件考虑直接使用映射器中的hdfs api FileSystemFileStatus