一、MapReduce计算模型
1、思想
分而治之。适用于大量负责的任务处理场景,大规模数据处理场景。
Map负责分,Reduce负责合。比如我们要数图书馆中所有书。你数1号数据,我数2号。这就是Map。人越多,效率越高。现在我们到一起,把所有人的统计数加在一起。这就是Reduce。
▶ 计算模拟实现思路
场景例子:统计文件/a.txt当中每个单词出现的总次数
hello x次
Hadoop x次
ITcast x次
传统思路:要把所有文件的块读取过来然后统计,如果数据特别大的话,拉取非常耗时
MapReduce:
2、Hadoop MapReduce设计构思
MapReduce是一个分布式运算程序的编程框架,核心功能时将用户编写的业务逻辑代码和自带的默认组件合成一个完整的服你不是运算程序,并运行在Hadoop集群上。
▷ 处理大数据:分而治之
对不具有计算依赖关系的大数据采用分而治之的cel。并行计算需要考虑如何划分计算任务或计算数据,以便对划分的子任务或数据块同时进行计算。不可分拆或有依赖关系的数据无法进行合并进行。
▷ 构建抽象模型思想:map和reduce
Map:对一组数据元素进行某种重复式的处理;
Reduce:对Map中间结果进行某种进一步的结果调整。
map:(k1;v1)→(k2;v2)
reduce:(k2;[v2])→[(k3;v3)]
MapReduce处理的数据类型是<key,value>键值对
▷ 统一架构,隐藏系统层细节
MapReduce设计并提供了统一的计算框架,为程序员隐藏了绝大多数系统层面的处理细节。MapReduce最大亮点在于通过抽象模型和计算框架把需要做什么与具体怎么做分开了,微程序员提供一个抽象和高层的编程接口和框架。程序员仅需要关系其应用层的具体计算问题,仅需编写少了的处理应用本身计算问题的程序代码。
3、MapReduce框架
一个完整的MapReduce程序在分布式运行时有三类实例进程:
1)MRAappMaster:负责整个程序的过程跳读及状态协调;
2)MapTask:负责map节点的整个数据处理流程
3)ReduceTask:负责reduce节点的整个数据处理流程
网友评论