【发布时间】:2012-06-20 15:23:46
【问题描述】:
我有两个独立的 java 类来执行两个不同的 mapreduce 作业。我可以独立运行它们。他们操作的输入文件对于这两个作业是相同的。所以我的问题是是否可以在一个 java 类中定义两个映射器和两个化简器,比如
mapper1.class
mapper2.class
reducer1.class
reducer2.class
然后喜欢
job.setMapperClass(mapper1.class);
job.setmapperClass(mapper2.class);
job.setCombinerClass(reducer1);
job.setCombinerClass(reducer2);
job.setReducerClass(reducer1);
job.setReducerClass(reducer2);
这些设置方法实际上是覆盖以前的方法还是添加新的方法?我尝试了代码,但它执行唯一最新的给定类,这让我认为它会覆盖。但一定有办法做到这一点吗?
我问这个的原因是我只能读取一次输入文件(一个 I/O),然后处理两个 map reduce 作业。我也想知道如何将输出文件写入两个不同的文件夹。目前,这两个作业是独立的,需要一个输入和一个输出目录。
【问题讨论】: