5.1 MapReduce简介
MapReduce 是hadoop的一个核心组成框架,使用该框架编写的应用程序能够以一种可靠的、容错的的方式并行处理大型集群(数千个节点)上的大量数据(TB级别以上),也可以对大数据进行加工,挖掘等优化处理。
一个 MapReduce 任务主要包括两部分:Map任务和Reduce任务。Map任务负责对数据的获取、分割与处理,其核心执行方法为map()方法。MapReduce 将并行计算过程高度抽象了 map() 方法和 reduce 方法中,程序员只需要负责这两个方法的编写工作,而并行程序中的其他复杂问题(如分布式存储、工作调度、负载均衡、容错处理等)均可由MapReduce框架代为处理,程序员完全不用操心。
5.1.1 设计思想
MapReduce的设计思想是,从HDFS中获得输入数据,将输入的一个大的数据集分割成多个小的数据集,然后并行计算这些小数据集,最后将结果进行汇总,得到最终的计算结果,并将结果输出到HDFS中。下面我们以计算水果个数为例让MapReduce设计思想简单化。如图: