在一个简单的MapReduce程序中,有一个输入文件,分割每一行后,将对其进行映射。但是,现在我想阅读每一行,并在拆分后,用不同的键将其映射两次。读取一行和两张 map (两次使用context.write)。
我读:
Running two mapper and two reducer for simple hadoop mapreduce jobs
答案是:因此,只需将2个文件放入输入目录,即可运行2个映射器。现在我应该放两个相同的文件?
最佳答案
没有必要在映射器中读取行,将其拆分并传递到某个地方。立即处理:
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(...) { ... }
关于java - 在一个输入文件上运行两个映射器,在一个简化器上运行一个reducer,以实现简单的hadoop mapreduce作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45743632/