我还在学习 MapReduce 框架,专门由 Hadoop 实现,我想知道是否可以对其进行修改以执行以下任务:
Map() 函数将发出 (key,value) 对,其键是大小为 2 的数组,例如 int[2]。我希望包含两个共同整数中的任何一个的每一对都映射到同一个减速器。
例如,如果 Map() 发出:([2,3],4),([2,4],5),([6,5],2),([5,7],1),那么 Reduce1 应该接收前两对,Reduce2 接收后两对(前两个共享 2,第二个共享 5)。这可以看作是一个连通分量问题,其中顶点是 int[] 中的整数,而边在同一个 int[] 中的任意两个整数之间共享。