我需要帮助理解算法。我首先粘贴了算法解释,然后是我的疑问。
算法:(用于计算记录对之间的重叠)
给定一个用户定义的参数 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节点的数量??
希望得到回应!
谢谢!