我想帮助理解算法。我首先粘贴了算法解释,然后是我的疑惑。
算法:(用于计算记录对之间的重叠)
给定用户定义的参数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是否等于减速器节点的数量?
希望得到答复!
谢谢!
答案 0 :(得分:0)
在针对当前程序的节点变得不必要之后测试相同的程序。我发现一旦完成操作通常会更好。
但是,如果操作只是知道稍后在操作期间处理,则可能需要允许代码一直持续到最后。