使用MapReduce执行组操作

时间:2016-11-21 22:51:43

标签: java hadoop mapreduce graph-algorithm bigdata

我正在尝试在MapReduce中实现顺序图算法。

在此我必须执行Group Action。请访问Wikipedia以了解什么是群组操作。

假设我有组{a1,a2,a3},{b1,b2,b3},{c1,c2,c3}。让我们用G1,G2,G2命名这个组。基于组动作,G1可以分割G2或G3。类似于G2和G3也是如此。 我必须确定组Gi是否可以拆分Gj然后输出所有组的拆分 似乎我必须做(nP2)排列。 每组与所有其他组相比
假设输入是组列表。 那么,我们如何才能进行这种基于排列的计算,并使用MapReduce进行分割。

1 个答案:

答案 0 :(得分:0)

这不是一个经典的mapreduce场景,因为如果我理解正确,你在这里没有键/值。如果我仍然想使用mapreduce,我会这样做:

  1. 预处理组 - 创建包含所有i,j的所有Gi,Gj对的集合 {A∈P| P是组∧| A | = 2}的幂集 现在您已经安排了输入,以便每个地图任务都可以接收2组作为其输入。
  2. 你工作中的映射器将有决定Gi是否可以拆分Gj的方法 - 如果存在,则发出拆分。
  3. 不需要减速机