6

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

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

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

我们覆盖了 Hadoop 的分区函数,该函数将映射器发出的键映射到减速器实例。每个键 (i,j) 都映射到第 j/K 组中的一个 reducer。

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

疑点:

我做了一些假设:

声明:每个键 (i,j) 都映射到第 j/Kth 组中的一个 reducer。假设:存在 K 个 reduce 节点,并且 key 映射到 j/Kth 个 reduce 节点。

疑问:一些reduce节点是否组合在一起?说 0,1,2 节点被分组为 Group-0?

声明:文档的数据最多被复制K次,这样每个reducer都可以传递文档的全部内容。

所以这意味着K等于否。减速器节点数?如果不是这样,我们就是在浪费计算节点,而不是使用它们,对吗?

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

希望得到回应!

谢谢!

4

1 回答 1

0

在节点变得不必要后针对您当前的程序测试相同的程序中断。我发现通常最好在操作完成后中断操作。

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

于 2013-04-18T11:21:49.017 回答