Hadoop框架:MapReduce基本原理和入门案例
本文源码: GitHub·点这里 || GitEE·点这里 一、MapReduce概述 1、基本概念 Hadoop核心组件之一:分布式计算的方案MapReduce,是一种编程模型,用于大规模数据集的并行运算,其中Map(映射)和Reduce(归约)。 MapReduce既是一个编程模型,也是一个计算组件,处理的过程分为两个阶段,Map阶段:负责把任务分解为多个小任务,Reduce负责把多个小任务的处理结果进行汇总。其中Map阶段主要输入是一对Key-Value,经过map计算后输出一对Key-Value值;然后将相同Key合并,形成Key-Value集合;再将这个Key-Value集合转入Reduce阶段,经过计算输出最终Key-Value结果集。 2、特点描述 MapReduce可以实现基于上千台服务器并发工作,提供很强大的数据处理能力,如果其中单台服务挂掉,计算任务会自动转义到另外节点执行,保证高容错性;但是MapReduce不适应于实时计算与流式计算,计算的数据是静态的。 二、操作案例 1、流程描述 数据文件一般以CSV格式居多,数据行通常以空格分隔,这里需要考虑数据内容特点; 文件经过切片分配在不同的MapTask任务中并发执行; MapTask任务执行完毕之后,执行ReduceTask任务,依赖Map阶段的数据; ReduceTask任务执行完毕后,输出文件结果。 2