海量数据处理:MapReduce法
MapReduce适用于大规模数据集(通常大于1TB)的并行运算,核心操作是Map(映射)和Reduce(化简)。Map函数独立地对每个元素进行操作,用于把一组健值对映射成一组新的健值对,即先通过Map程序将数据切割成不相关的区域,分配(调度)给大量计算机处理达到分布计算的效果,然后通过指定并发的Reduce函数来将结果汇总,保证所有映射键值对中的每一个共享相同的键组。
- Map是把一组数据一对一地映射为另外的一组数据,其映射的规则由一个函数来指定,例如对【1,2,4,8】进行乘2的映射就变为【2,4,8,16】。
- Reduce是对一组数据进行规约,这个规约的规则是由另外一个函数指定的,例如对【1,2,4,8】进行求和规约得到的结果是15
一、top K问题
在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题称为top K问题。
- 针对top K类问题,通常比较好的方案是分治+Trie树/hash+小堆顶,
- 即先

本文介绍了如何使用MapReduce法处理海量数据,特别是针对Top K问题提供了多种解决方案,包括数据全部排序、局部淘汰法、分治法、hash法和最小堆法。文章详细阐述了每种方法的原理和适用场景,并给出了实际应用的例子。
订阅专栏 解锁全文
1721

被折叠的 条评论
为什么被折叠?



