Hadoop框架的两大核心为:HDFS和MapReduce。
HDFS是将数据以数据块为单位进行存储。
MapRduce包含Map和Reduce两个函数,适合用于批处理、非实时,以及数据密集型的情况。
下面对MapRduce进行简介:
最简单的理解mapreduce的例子是做蔬菜沙拉;
再举一个具体的例子就是:
图片发自简书App
接下来主要从三个方面进行介绍:策略、理念、架构
(1)策略
使用Hadoop框架和MapRduce肯定是大规模的数据集处理,数据动则几个TB、几十TB,如果只有几百M的数据,根本用不着MapRduce。
通常处理过程是:将数据集—(split)—>小分片——>对每个小分片单独启动Map任务,每个Map里面都有用户编写的对数据处理的逻辑。有多少个分片就有多少个Map,这样多个Map并行运行。理想的情况是把一个HDFS数据块的大小作为一个分片,大约64M或128M。
(2)理念
Hadoop的理念是“计算向数据靠拢”,寻找数据块最近的map结点进行计算,而不是将数据运输到计算结点增大资源消耗。
(3)架构
1.png
每个task 中将slot分为map slot和reduce slot。
2.png
Shuffle过程是理解MapReduce的核心,一个shuffle过程包括一个map任务和一个reduce任务。
3.png
4.png
5.png
作者:CB
邮箱:2101283570@qq.com
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。