我有多个非常大的文件(近500mb)作为我的mr程序的输入。我把这些文件分成大小相等的分区。每个Map器获得一个文件的单个分区
Map器:key=(文件名,分区号)value=(分区字符流)
我正在mapper中对值(字符流)应用一些计算。我想在一个reducer中收集与输入文件(对于它的所有部分)对应的结果。所以我认为reducer i/p键是“filename”。但是Map器的输出必须在reducer中按顺序收集(比如[partition1o/p+partition2+…+partitionno/p])
你能告诉我逻辑吗。谢谢。
1条答案
按热度按时间gmxoilav1#
你需要第二种。有关示例,请参见https://vangjee.wordpress.com/2012/03/20/secondary-sorting-aka-sorting-values-in-hadoops-mapreduce-programming-paradigm/
在这种情况下”
主比较器在[filename,partition\u number]上比较
仅文件名上的组比较器
仅文件名分区器