在输入文件和简化器上运行两个映射器,用于简单的hadoop mapreduce作业

时间:2017-08-17 19:35:49

标签: java hadoop mapreduce

在一个简单的MapReduce程序中,有一个输入文件,在分割每一行之后,它将被映射。但是现在我想要读取每一行,然后在分割后,用不同的键将它映射两次。读取一行和两个映射(使用context.write两次)。 我读: Running two mapper and two reducer for simple hadoop mapreduce jobs 回答:所以只需将2个文件放入输入目录,这样就可以运行2个映射器。现在我应该放两个相同的文件?

1 个答案:

答案 0 :(得分:0)

没有必要在mapper中读取行,将其拆分并传递到某处。立即处理:

void map(K key, Text value, Context ctx) {
    String k1 = getKey1(value);
    String k2 = getKey2(value);
    map1(k1, value);
    map2(k2, value);
}

void map1(...) { ... }
void map2(...) { ... }