yarn-cluster模式:
(1)client客户端提交spark Application应用程序到yarn集群。
(2)ResourceManager收到了请求后,在集群中选择一个NodeManager来为应用程序分配container容器,并启动该应用程序的ApplicationMaster。
(3)ApplicationMaster 向 ResourceManager 注册,并为各个任务申请container资源。
(4)ApplicationMaster申请到资源后,便与对应的NodeManager进行通信,要求其在container容器中,启动Excutor。Excutor启动之后,会向ApplicationMaster反向注册,并申请task。
(5)ApplicationMaster分配task给Excutor,Excutor运行task,并向ApplicationMaster汇报运行的状态和进度。
(6)所有任务执行完毕,ApplicationMaster向ResourceManager注销自己。
各个任务的运行状态,是从Excutor向ApplicationMaster汇报,ApplicationMaster可在任务失败时重新启动任务。ApplicationMaster向ResourceManager汇报,从而使用者可以在yarn的任务监控界面观测到各个任务运行的状态。