这一yarn的原理图
Client 首先向RM询问这个作业怎么跑,然后RM会为Client创建一个进程,会在集群中挑一台不忙的节点,创建App Mas(当有一个作业要跑,为这个作业而创建的一个活动的App Mas,它等于Jobtrack的调度模块,Jobtrack的资源管理被yarn弄走,)了,因为App Mas是调度的,所以他从Client中拿回切片清单,但是最终的map在那个节点运行,是App Mas 回过头向RM中问:“yarn的老大你帮我看一看我这有一个清单,上面可能有几百个Map跟几百个Reduce运行,你根据你资源的情况,你告诉我这些Map跟Reduce应该去哪”。
因为Yarn是资源管理的,所以App Mas应该是向RM申请资源,申请之后RM如果确认一个Map或Reduce去到那,RM会用一个比较抽象的东西,叫做Continar(容器),假如App Mas 会有3个map要跑,那么RM会返回3个容器,在3个容器中跑map,最终的map任务就在这里。容器会给
App Mas 返回跑的情况。