1、MapReduce 介绍
MapReduce是一种可用于数据处理的编程框架。MapReduce采用"分而治之"的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是"任务的分解与结果的汇总"。
MapReduce如何分而治之呢? map->“分” ==》 reduce->“合并”
在MapReduce过程详细:input -> map -> shuffle ->reduce -> output
在分布式计算中,MapReduce框架负责处理了并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题,把处理过程高度抽象为两个函数:map和reduce,map负责把任务分解成多个任务,reduce负责把分解后多任务处理的结果汇总起来。
1.1、MapReduce结构图
* 本地模式运行、例如(运行Hadoop JAR—运行参数—输入源—输出源)
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/root/chenzhengy
ou/mapreduce/wordcount/input /user/root/chenzhengyou/mapreduce/wordcount/output
* yarn模式例如、(运行YARN JAR—运行参数—输入源—输出源)
bin/yarn jar jars/hadoop-mapreduce.jar /chenzhengyou/mapreduce/wordcount/input/wc.input /chenzhengyou/map
reduce/wordcount/output
1.2、MapReduce在YARN?
1.3、 shuffle 过程
ModuleMapper:map(KEYIN,VALUEIN,KEYOUT,VALUEOUT)
在 shuffle 阶段:
接收map的输出:output<key,value>
spill:溢写到磁盘中
* 分区parttition、排序sort
* 合并,merge、copy
在 Reduce Task阶段:回到Map Task运行的机器上,拷贝要处理的数据
* 合并、merge、排序、分组group、将相同Key 的value放在一起
2、YARN 介绍
MapReduce has undergone a complete overhaul in hadoop-0.23 and we now have, what we call, MapReduce 2.0 (MRv2) or YARN(官网的介绍)
在hadoop 2.0版本中后,YARN引入了一种新的调度策略:基于标签的调度机制。该机制的主要引入动机是更好地让YARN运行在异构集群中,进而更好地管理和调度混合类型的应用程序。