了解用于重叠计算的mapreduce算法

时间:2013-03-10 06:05:40

标签: java hadoop mapreduce elastic-map-reduce hadoop-partitioning

我想帮助理解算法。我首先粘贴了算法解释,然后是我的疑惑。

算法:(用于计算记录对之间的重叠)

给定用户定义的参数K,文件DR(* Format:record_id,data *)被分成K个近似等大小的块,使得文档Di的数据落入第i / K th块中。

我们覆盖了Hadoop的分区功能,该功能将映射器发出的密钥映射到reducer实例。每个键(i,j)都映射到j / Kth组中的reducer。

特殊键i,*及其相关值,即文档的数据最多复制K次,以便可以在每个缩减器上传送文档的全部内容。因此,组中的每个reducer只需要在内存中恢复并加载一个DR文件块, 通过改变K,其大小可以任意设定。因此可以计算重叠。这是以复制通过MapReduce框架提供的文档为代价的。

疑惑:

我做了一些假设:

声明:每个键(i,j)都映射到j / Kth组中的reducer。假设:存在K个减少节点,并且该密钥被映射到j / Kth reduce节点。

怀疑:是否有一些减少节点组合在一起?比如说0,1,2个节点被分组为0组?

声明:文档的数据最多可复制K次,因此可以在每个reducer上传送文档的完整内容。

这意味着K等于没有。减速机节点?如果没有,我们正在浪费计算节点,而不使用它们吗?

主要疑问:K是否等于减速器节点的数量?

希望得到答复!

谢谢!

1 个答案:

答案 0 :(得分:0)

在针对当前程序的节点变得不必要之后测试相同的程序。我发现一旦完成操作通常会更好。

但是,如果操作只是知道稍后在操作期间处理,则可能需要允许代码一直持续到最后。