大数据技术原理与应用 第三版 林子雨 期末复习(三)MapReduce
概念
MapReduce是一种分布式并行编程模型,常用于处理大规模数据集。其将运行于分布式集群上的复杂的并行计算过程高度抽象为两个函数Map与Reduce,这两个函数思想都源自函数式编程思想。
Map与Reduce函数输入输出
函数 | 输入 | 输出 | 说明 |
---|---|---|---|
Map | <k1,v1> | List(<k2,v2>) | 将一批小数据集拆分为<k,v>形式,每一个输入的<k,v>均会输出一批<k,v>。 |
Reduce | <k2,List(v2)> | <k3,v3> | <k2,List(v2)>表示属于同一个键的不同值 |
Suffle过程详解
Map端
Map端作用是将Map的输入写入缓存中,当缓存溢出时进行溢写操作,把缓存中的数据迁至磁盘中,并清空缓存
Reduce端
Reduce端的作用是从Map端的不同Map机器获取属于自己部分的输出,对输出进行归并处理,最终交给Reduce端进行处理。