将输入划分为多个映射



我有个问题。是否可以将我们对mapreduce程序的输入划分为几个map函数进行处理?我的意思是,我们能为每个映射函数指定一个特定的输入范围吗?

最简单的方法是使用MultipleInputs。特别是,使用具有要在映射器类中传递的参数的addInputPath函数。

这里有一个例子:

MultipleInputs.addInputPath(thejob, new Path(path1), TextInputFormat.class, Mapper1.class);
MultipleInputs.addInputPath(thejob, new Path(path2), TextInputFormat.class, Mapper2.class);
...
MultipleInputs.addInputPath(thejob, new Path(pathN), TextInputFormat.class, MapperN.class);

这将使Mapper1path1运行,Mapper2path2运行,等等

请注意,这里的限制是您的输入划分需要通过文件来完成。。。而不是输入拆分或类似的东西。最简单的方法是每个映射器有一个数据文件夹。

相关内容

  • 没有找到相关文章

最新更新