通俗说基于Yarn的Map-Reduce过程

6 篇文章 0 订阅
3 篇文章 0 订阅

先看全图是基于Yarn的Map-Reduce运行过程,下面通俗的说一下这个过程。

从前有一个老板Resource Manager,开了一家外包公司,这家公司有很多的团队Node,每个团队都有个经理Node Manager,每过一段时间,团队经理Node Manager都要到老板那里开会,向老板的人事部门Manage NMs的ResourceTackerService报告当前的人员使用情况。

这一天,来了一个客户Client,来到总部的接待处ClientRMService说,我有个项目,你们干不?getNewApplication

当老板觉得这个项目干得过,于是就给客户Client拿了一个号Application ID,说项目我们接,把你们的项目材料提交一下吧。

于是客户Client回去整理了一下项目的材料,将项目的具体材料,例如项目执行所需要的jars,项目的说明文档job.xml,项目的进度规划splits,上传到了同一的云盘HDFS上,然后向总部提交了申请表submitApplication。

老板Resource Manager对项目管理组Manage AMs的人说,接了项目,弄个项目经理ApplicationMaster(MRAppMaster)吧(startContainter),专门负责这个项目的对接。于是在一个团队里面Node Manager下面抽了一个人,做项目经理,然后告诉客户,以后由着项目经理进行对接了。

项目经理MRAppMaster说:是,老板!,于是走马上任registerApplicationMaster。

项目经理MRAppMaster对客户说:以后这个项目的事情,就由我来对接了,我会不断将项目进度反馈给你的getJobReport。

新官上任三把火,项目经理MRAppMaster开始撸起袖子干革命了。

第一件事情,就是从云盘HDFS上将项目资料下载下来,仔细阅读,发现这个客户要干的事情真不少,需要很多人一起干,于是按照splits里面的规划,将任务分成很多份,大家一起干MapTask,这样干的快,但是最终的结果,还是需要几个可靠的人将大家的结果收集起来,做个汇总ReduceTask,然后将项目结果也写到云盘HDFS上去,告诉客户任务执行完了,结果在云盘上,自己去看吧。

好了,项目经理MRAppMaster做好了上述的规划,开始干。

项目经理先去总部申请人头allocate,由于每个人都是算工时的,因而MapTask的部分可以先安排人,做总结汇报的ReduceTask的人还不着急。

于是总部Resource Manager经过协调部门Scheduler找到了足够的人选,然后由项目管理组ApplicationMasterService告诉项目经理MRAppMaster,团队一Node Manager手下有两个人可以干活,团队三Node Manager手下有三个人可以干活,团队七手下有一个人可以干活。

于是项目经理MRAppMaster告知各团队经理Node Manager,总部给我说了,你们说下各有N个人可以加入我的项目,开始干活了。

于是Node Manager将人分ContainerExecutor到项目组,先进行MapTask的任务,分到项目组的人不断将MapTask的结果向项目经理汇报。

当项目经理发现MapTask的任务执行的差不多了,于是向总部申请人头allocate来做汇总的工作ReduceTask。

做汇总工作的人也是从各团队分配的,也是要不断的将结果向项目经理汇报。

做汇总工作的人ReduceTask,会将MapTask的结果收集起来,做一定的处理,得到汇总的结果,写入云盘HDFS。

当结果汇总完毕,任务就结束了,项目经理告诉客户任务圆满完成,也告诉总部项目我交差了finishApplicationMaster,可以开始干下一个项目了。

有人问,有什么项目需要这样兴师动众呢?下面举几个例子。

大数据方法论之Nutch基于Map-Reduce的爬取方法

大数据方法论之PageRank的Map-Reduce计算

大数据方法论之网页消重的Map-Reduce算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值