1.客户端提交计算任务(如:MR任务、Spark任务、Flink任务)给到ResourceManager。
2.ResourceManager校验任务合法后,会找一台nodemanager节点,创建Appmaster进程,
3.AppMaster进程创建成功后回和ResourceManager建立心跳机制,并通过心跳包的方式获取到要执行的计算任务的信息,之后会计算执行该任务所需的资源。
4.AppMaster会找ResourceManager申请执行改计算任务所需的资源
5.ResourceManager接收的AppMaster的请求后,会找一些nodemanager,在其上创建一些Container资源容器,“占用”资源,用于执行该计算任务。
6.AppMaster会连接到nodemanager,从而找到这些Container资源容器。
7.AppMaster会让计算任务在Container资源容器中执行,并实时监听计算任务的状态,当MapTask任务执行结束后,AppMaster会通知ReduceTast开始执行,当ReduceTask执行结束后,整个计算任务就执行完成。
8.AppMaster会将该计算任务的结果返回给ResourceManager,并通知ResourceManager可以释放该计算任务的Container资源了,并启动自毁,至此,整个执行流程结束。