美文网首页
算法002 MapReduce, TeraSort

算法002 MapReduce, TeraSort

作者: 攻城狮托马斯 | 来源:发表于2020-04-26 21:51 被阅读0次

MapReduce通常用于处理大于1TB的数据, 比如说Word Count

Input, Split, Map, Shuffle, Reduce 和 Finalize

Split: 把数据以任务的形式, 分配给不同的机器,这一步非常简单

Map: 把需要统计的数据存起来

Reduce: 对已有的数据进行统计,简单的代码如下

Shuffle: Map Reduce中最关键的一步, 要把Map中的值统计在一起,分到制定的Reducer中

这里Shuffle通常可以由 Hash Partition来做,把每个单词Hash后,均匀地分布在不同的Worker中,然后根据Hash的值再找到Worker来Reduce. 这样的好处是给每个Worker的分布比较均匀。

相关问题:

1.找出1TB data中,2 sum的对数。

在这里, Shuffle的时候可以将能够组成target value的pair直接map到同一个reducer上,然后每个reducer做local two sum。

比如: A + B = target, 其中有一个一定小于 2/target, 那么, A的hashcode就是自己,而B的hashcode是target - B == A, 那么就会被分配到同一个Reducer中.

假设A = 49,那么A / 50 = 49, 而B的HashCode则是(100 - 51) / 50 = 49,那么两个数就被分到同一个Reducer中去了

2.Inverted Index:

根据字母的来进行hash

3.Group Anagrams

把所有的单词按照字母重排,找出anagrams,然后把anagrams进行hash

TeraSort之后再讲吧
https://blog.csdn.net/trend_h/article/details/95625381

相关文章

网友评论

      本文标题:算法002 MapReduce, TeraSort

      本文链接:https://www.haomeiwen.com/subject/rmqswhtx.html