- 客户端将它的程序提交给Yarn。
- RM会给客户端返回一个jobid以及一个路径。
- 客户端会将对应的程序信息(jar包、切片信息、序列化文件)提交到对应的路径下。
- 提交完以后给RM返回一个确认。
- RM就会在存放提交信息的那台NodeManager上创建出来一个容器。启动我们的ApplicationMaster。
- ApplicationMaster会跟提交的切片信息和程序向RM注册,并申请容器。
- RM收到资源请求后,就去跟NM通信,NM就会在自身的节点上创建出需要的容器数量。
- ApplicationMaster就将相应的任务信息,发送到对应的NM节点上,并使用创建出来的container去运行Task。
- 运行ReduceTask。
- 等所有的Task都执行完以后,ApplicationMaster就向RM进行注销,RM就会回收资源。
RM:负责资源的分配。
ApplicationMaster:资源的申请,程序的监控。
NM:负责创建容器,运行Task