java—在一个输入文件上运行两个Map器,并为简单的hadoop mapreduce作业运行一个reducer

nhhxz33t  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(322)

在一个简单的mapreduce程序中,有一个输入文件,在分割每一行之后,它将被Map。但是现在我想读每一行,在分割之后,这条线,用不同的键Map两次。读取一行和两个Map(使用context.write读取两次)。我读到:为简单的hadoopmapreduce作业运行两个mapper和两个reducer,答案是:所以只需将两个文件放入您的输入目录中,就可以运行两个mapper。现在我应该把两个相同的文件?

ar7v8xwq

ar7v8xwq1#

在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(...) { ... }

相关问题