- 调度流程图
- client向resourcemanager(RM)提交任务
- RM在某一个nodeManager(NM)启动一个对应的applicationMaster(AM)
- AM向RM注册自己及申请任务需要的资源
- RM要求对应NM启动相应的Container
- AM发送请求到对应NM,启动任务
- NM设置Container的运行时环境(jar包,环境变量,任务启动脚本),NM会通过脚本启动任务
- 启动的过程是由NM的ContainerLauncher负责的,ContainerLauncher完成启动任务的工作
- task和AM的交互,task会向AM汇报任务状态和进度信息,比如任务启动,停止,状态更新。AM利用这些信息监控task整个执行过程。第二,是NM和RM的交互,这个过程和任务没有关系,主要是两者之间保持的心跳信息(状态的变化等等)
- Application Master在检测到作业运行完毕之后,Application Master想Resource Manager 删除自己,并且停止自己执行。