了解MapReduce_2
再写MapReduce执行流程之前,首先先对MapReduce有一些了解:
1. 简介
MapReduce是一个计算框架,既然是做计算的框架,那么表现的形式上就有输入,操作输入,得到结果
2.主从结构
a.Hadoop1.0
MapReduce是主从结构,Hadoop1.0的主是JobTracker,从TaskTracker。
JobTracker作用 : 作业的管理者,将作业分解成一堆的任务(task),其中任务又分为MapTask和ReduceTask。将任务分派给TaskTracker运行。作业的监控,容错处理,在一定时间的间隔内,JT没有收到TT的心跳信息,那么说明TT很有可能是挂了,TT上运行的任务会被指派到其他的TT上去执行。
TaskTracker作用 : 任务的执行者,在TT上运行task。会与JT进行交互:执行/启动/作业,发送心跳信息给JT。
MapTask作用 : 自己开发的map任务交由task进行处理。解析每条记录的数据,交给自己的map方法处理。将map的输出结果写到本地磁盘。
ReduceTask作用 : 将map task输出的数据进行读取。按照数据进行分组传给编写的reduce方法处理。输出结果写到HDFS。
b.Hadoop2.0
因为JobTracker单点故障,成为系统的瓶颈,限制系统进一步扩展,在Hadoop2.0引进Yarn,将MR运行于资源管理框架Yarn之上
ResourceManager作用 : 负责调度分配每一个task任务运行于NodeManager上,如果发现有失败的,就重新分配任务到其他节点上,每一个Hadoop集群只有一个ResourceManager,一般运行在master节点
NodeManager作用 : NodeManager主动与ResourceManager通信,接收作业,并负责执行每一个task任务,为了减少网络带宽,NodeManager最好运行在HDFS的DataNode上
下一篇: Linux基本命令-chmod