大数据技术原理——MapReduce

Hadoop框架的两大核心为:HDFS和MapReduce。

HDFS是将数据以数据块为单位进行存储。
MapRduce包含Map和Reduce两个函数,适合用于批处理、非实时,以及数据密集型的情况。

下面对MapRduce进行简介:
最简单的理解mapreduce的例子是做蔬菜沙拉;
再举一个具体的例子就是:

《大数据技术原理——MapReduce》 图片发自简书App

接下来主要从三个方面进行介绍:策略、理念、架构

(1)策略
使用Hadoop框架和MapRduce肯定是大规模的数据集处理,数据动则几个TB、几十TB,如果只有几百M的数据,根本用不着MapRduce。

通常处理过程是:将数据集—(split)—>小分片——>对每个小分片单独启动Map任务,每个Map里面都有用户编写的对数据处理的逻辑。有多少个分片就有多少个Map,这样多个Map并行运行。理想的情况是把一个HDFS数据块的大小作为一个分片,大约64M或128M。

(2)理念
Hadoop的理念是“计算向数据靠拢”,寻找数据块最近的map结点进行计算,而不是将数据运输到计算结点增大资源消耗。

(3)架构

《大数据技术原理——MapReduce》 1.png

每个task 中将slot分为map slot和reduce slot。

《大数据技术原理——MapReduce》 2.png

Shuffle过程是理解MapReduce的核心,一个shuffle过程包括一个map任务和一个reduce任务。

《大数据技术原理——MapReduce》 3.png
《大数据技术原理——MapReduce》 4.png
《大数据技术原理——MapReduce》 5.png

    原文作者:是蓝先生
    原文地址: https://www.jianshu.com/p/214aaa860765
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞