java - Hadoop 几个映射器

标签 java hadoop mapreduce

我可以将多个映射器类设置到一个作业中吗?

例如,我有一个来自 HDFS 的 csv 输入文件。我有两个任务要做。第一个是计算 csv 输入文件中的两个字段并将结果放入输出文件中。第二个是计算同一个 csv 输入文件中的另外两个字段,并将结果放入另一个输出文件中。 Reducer 是一样的。

我如何仅使用一项工作并让它们同时处理来实现这一目标? (我不想做完第一个再做第二个,我想让他们并行处理)。

我试试下面的代码:

    job1.setMapperClass(Mapper1.class);
    job1.setReducerClass(LogReducer.class);

    job1.setMapperClass(Mapper2.class);
    job1.setReducerClass(LogReducer.class);

我试过了,但没用,它只显示第二个结果,第一个结果不见了。

最佳答案

显然需要两个作业并行运行。由于映射任务和输出路径不同,并行运行两个作业有什么问题。如果作业未链接,则无法处理多个映射器。

关于java - Hadoop 几个映射器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17735547/

相关文章:

java - Android 应用程序中抛出 JSONException

java - Hadoop 2.2.0 源码打包

java - 如何在Hadoop 2.6中访问JobCounters和FileSystemCounters?

java - hadoop: reducer 的数量保持不变 4

java - 需要解释使用 Thrift rpc 传输二进制数据

java - 编辑数组中的类 [Java]

java - 如何在Java中为ArrayList内容设置不同的颜色

mysql - 在庞大的 MySQL 数据库上运行分析

scala - InvalidRequestException(为什么 :empid cannot be restricted by more than one relation if it includes an Equal)

hadoop - Mesos 和 Hadoop : How to get the running job input data size?