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