目录:
1、简单说明
2、任务角色
3、任务流程
4、优化
简单说明
MapReduce分为Map和Reduce阶段,一个任务会先将输入的数据切分成独立的小块,被Map任务在DataNode中处理,实现分布处理,然后将Map任务的结果汇总到Reduce任务中做进一步汇总处理,最后输出。因为Hadoop是将计算放在数据节点上,而不是数据放在数据节点,所以计算和存储结点相同。
任务角色
MapReduce任务有两个角色,一个是JobTracker,一个是TaskTracker。JobTracker用于管理和调度工作的,TaskTracker用于执行工作,一个Hadoop集群只有一个JobTracker,JobTracker调度任务给TaskTracker执行,TaskTracker执行返回进度报告,JobTracker记录任务的进行状况,若失败,则交由其他TaskTracke执行。
3、任务流程
每个MapReduce任务被初始化为一个Job,每个Job又分为两个阶段,Map和Reduce,所有的输入和输出都是<key,value>
,先将数据经由InputFormat进行split处理,然后到Map,Map阶段接收一个<key,value>
的输入,然后产生同样<key,value>
形式的中间段输出,这个输出在本地存储,将具有相同key值的数据集合在一起,<key,{value1,value2...value}>
,传