1.JobTracker:JT
作业的管理者
将作业分解成一堆的任务:Task(MapTask和ReduceTask)
将任务分配给TaskTracker运行
作业的监控、容错处理
心跳检测:在一定的时间间隔内,JT没有收到TT的心跳信息,TT可能挂了,TT上运行的任务会被指派到其他TT上去执行
2.TaskTrack:TT
任务的执行者
在TT上执行我们的Task
与JT进行交互:执行/启动/停止作业,发送心跳信息个JT
3.MapTask(自己的策略)
自己开发的map任务交由该Task出来
解析每条记录的数据,交给自己的map方法处理
讲map的输出结果写到本地磁盘(有些作业心有map,没有reduce)
例如:单子计数中的
将每一个单子赋值1
4.ReduceTask
讲MapTask输出的数据进行读取
按照数据进行分组,穿个我们自己编写的reduce方法处理
输出解雇哦写道HDFS
例如:单词计数中的统计
工作流程:
1cliend提交资源到resourcemanager,2RM找一个NM的MR APP来运行,3然后再向RM的APP返回注册,4并向resourescheduler申请资源,5启动对应的NM的container,6在container内部完成我们的maptask和reducetask。