Hadoop基础---MapReduce实现
一:MapReduce思想 (一)MapReduce解决的问题 1.如何实现将代码分发到集群中节点中,并且如何运行起来 2.将代码分发到哪些指定机器中运行 3.实时监控节点运行情况 4.结果如何汇总 总之:将我们简单的业务逻辑很方便的扩展到海量数据环境下的进行分布式运算 (二) MapReduce基本概念和程序编写逻辑 MapReduce的程序执行流程分为两个阶段:Mapper阶段和Reducer阶段 其中Mapper阶段包括: 1>指定输入文件的路径,并将输入文件在逻辑上切分成若干个split数据片。随后对输入切片按照一定的规则解析成键值对<k1,v1>,其中k1就是我们常说的起始偏移量,v1就是行文本的内容。 2>调用自己编写的map函数,将输入的键值对<k1,v1>转化成键值对<k2,v2>,其中每一个键值对<k1,v1>都会调用一次map函数。 3>对输出的键值对<k2,v2>进行分区、排序、分组,其中分组就是相同的key的value放到同一个集合当中。 4>(可选)对分组后的数据进行本地归并处理(combiner)。 其中Reducer阶段包括: 5>对多个Mapper任务的输出,按照不同的分区,通过网络拷贝到不同的Reducer节点上进行处理,随后对多个Mapper任务的输出进行合并,排序。 6>调用自己编写的reduce函数,将输入的键值对<k2,v2s>转化成键值对