0 首先注意的概念
ResourceManager:是集群所有应用程序的资源管理器,能够管理集群的计算资源并为每个Application分配,它是一个纯粹的调度器。
NodeManager:是每一台slave机器的代理,执行应用程序,并监控应用程序的资源使用情况。
Application Master:每一个应用程序都会有一个Application Master,它的主要职责是向RM申请资源、在每个NodeManager上启动executors、监控和跟踪应用程序的进程等。
1 Yarn-Cluster
执行过程:
(1)客户端提交Application到RM,这个过程做的工作有判断集群资源是否满足需求、读取配置文件、设置环境变量、设置Application名字等等;
(2)RM在某一台NodeManager上启动Application Master,AM所在的机器是YARN分配的,事先是不知道的;
(3)AM初始化SparkContext,开始驱动程序,这个NodeManager便是Driver;
(4)AM向ResourceManager申请资源,并在每台NodeManager上启动相应的executors;
(5)初始化后的SparkContext中的通信模块可以通过AKKA与NodeManager上的容器进行通信。