了解重叠计算的mapreduce算法



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

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

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

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

特殊键i,*和它的关联值,即文档的数据最多复制K次,这样文档的全部内容可以在每个reducer上传递。因此,组中的每个reducer只需要恢复并加载一个DR文件块到内存中。它的大小可以通过改变k来设定为任意小,从而可以计算出重叠。这是以复制通过MapReduce框架传递的文档为代价的。

怀疑:

我做了一些假设:

语句:每个键(i,j)映射到第j/k组中的一个reducer。假设:存在K个约简节点,键映射到第j/K个约简节点

疑点:是否有一些reduce节点分组在一起?假设0、1、2个节点分组为Group-0?

语句:文档的数据最多复制K次,使得文档的全部内容可以在每个reducer上传递。

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

主要疑点:K是否等于Reducer节点数??

期待回应!

谢谢!

在当前程序的节点变得不必要之后测试相同的程序中断。我发现最好是在手术结束后再做。

但是,如果操作在操作过程中只知道稍后处理,则可能有必要允许代码继续执行到末尾。

相关内容

  • 没有找到相关文章

最新更新