我需要帮助理解算法。我先贴了算法说明,然后贴了我的疑惑。
算法:(用于计算记录对之间的重叠)
给定一个用户定义的参数k,文件dr(format:record\u id,data)被分成k个大小几乎相等的块,这样文档的数据di就落入第i/k个块中。
我们重写了hadoop的分区函数,该函数将Map器发出的键Map到reducer示例。每个键(i,j)Map到j/kth组中的一个减缩器。
特殊键i,*及其相关值,即文档的数据最多被复制k次,因此文档的全部内容可以在每次复制时传递。因此,一个组中的每个reducer只需要在内存中恢复和加载一个dr文件块,其大小可以通过改变k来设置为任意小。因此可以计算重叠。这是以复制通过mapreduce框架交付的文档为代价实现的。
怀疑:
我做了一些假设:
语句:每个键(i,j)都Map到j/kth组中的一个缩减器。假设存在k个reduce节点,密钥Map到j/kth reduce节点。
疑问:一些reduce节点是否分组在一起?假设0,1,2个节点被分组为组-0?
语句:文档的数据最多被复制k次,这样文档的全部内容就可以在每个时间段传递。
也就是说k等于减速器节点的数目?如果不是这样的话,我们是在浪费计算节点,而不是正确地使用它们?
主要疑问:k等于减速机节点数吗??
希望得到回应!
谢谢!
1条答案
按热度按时间2ledvvac1#
在节点变得不必要后,对当前程序测试同一程序中断。我发现一旦手术结束,通常最好马上中断。
但是,如果操作只知道稍后在操作期间处理,那么可能需要允许代码一直持续到最后。