基于YARN的两种提交模式

yarn-cluster提交模式:

1,spark-submit提交,发送请求到ResourceManager请求启动ApplicationMaster;

2,ResourceManager分配container在某个nodemanager上,启动ApplicationMaster(相当于Driver);

3,ApplicationMaster找到ResourceManager,进行反注册,请求container启动executor;

4,ResourceManager分配一批container用于启动executor;

5,ApplicationMaster连接其他NodeManager来启动executor,这里的NodeManager相当于Worker,executor启动后向ApplicationMaster反注册。

yarn-client提交模式:

1,spark-submit提交,在本地启动Driver进程,并发送请求给ResourceManager,请求ApplicationMaster。

2,ResourceManager接收到请求之后分配一个container在某个NodeManager(其实只是一个ExecutorLauncher,相当于ApplicationMaster)。

3,ExecutorLanucher向ResourceManager申请container,启动executor;

4,ResourceManager分配一批contianer然后ApplicationMaster直接连接启动NodeManager,用contianer的资源,启动executor;

5,executor启动后会反注册到本地的Driver上。

 

描述Yarn执行一个任务的过程?
1)客户端client向ResouceManager提交Application,ResouceManager接受Application
并根据集群资源状况选取一个node来启动Application的任务调度器driver(ApplicationMaster)
2)ResouceManager找到那个node,命令其该node上的nodeManager来启动一个新的
JVM进程运行程序的driver(ApplicationMaster)部分,driver(ApplicationMaster)启动时会首先向ResourceManager注册,说明由自己来负责当前程序的运行
3)driver(ApplicationMaster)开始下载相关jar包等各种资源,基于下载的jar等信息决定向ResourceManager申请具体的资源内容。
4)ResouceManager接受到driver(ApplicationMaster)提出的申请后,会最大化的满足
资源分配请求,并发送资源的元数据信息给driver(ApplicationMaster);
5)driver(ApplicationMaster)收到发过来的资源元数据信息后会根据元数据信息发指令给具体
机器上的NodeManager,让其启动具体的container。
6)NodeManager收到driver发来的指令,启动container,container启动后必须向driver(ApplicationMaster)注册。
7)driver(ApplicationMaster)收到container的注册,开始进行任务的调度和计算,直到
任务完成。
补充:如果ResourceManager第一次没有能够满足driver(ApplicationMaster)的资源请求
,后续发现有空闲的资源,会主动向driver(ApplicationMaster)发送可用资源的元数据信息
以提供更多的资源用于当前程序的运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值