spark从入门到放弃十三:spark 三种提交模式

本文详细介绍了 Spark 在 YARN 上的两种运行模式:yarn-cluster 和 yarn-client。包括这两种模式下的工作流程、资源分配过程及它们之间的区别。yarn-cluster 更适合生产环境,而 yarn-client 则更便于本地调试。

文章地址:http://www.haha174.top/article/details/257573
一.Standalone 模式基于spark自己的 Master-Worker 集群。
就是之前的 spark-submit 提交的方式这里不再详细叙述。如果不清楚可以看这篇文章 如果要切换成第二种,第三种模式。将之前的submit脚本添加上–master 参数 设置为yarn-cluster 或yarn-client 即可。如果没有设置就是Standalone 模式。
二.基于YARN的yarn-cluster 模式
这里写图片描述

1.当我们使用spark submit 提交到yarn-cluster .此时发送请求到 ResourceManager 。 请求启动applicationMaster。applicationMaster启动后会向ResourceManager 请求container,ResourceManager接受到这个请求后会分配一个container.

2.然后在某个NodeManager上启动ApplicationMaster.ApplicationMaster(相当于driver)启动后会去和ResourceManager进行通信请求container 。

3.此时ResourceManager 会给 ApplicationMaster 分配一定量的 container 去启动executer.然后ApplicationMaster去连接其他的NodeManager。来启动executer。然后executer 启动后向ApplicationMaster反向注册。

三.基于YARN的yarn-client 模式

这里写图片描述
1.当我们使用spark submit 提交到yarn-client .本地会启动一个driver进程同时发送请求到 ResourceManager 。 请求启动ExecutorLanucher。ExecutorLanucher启动后会向ResourceManager请求 container,ResourceManager接受到这个请求后会分配一个container.

2.然后在某个NodeManager上启动ExecutorLanucher(其实类似与上文中的ApplicationMaster,但是功能有限,不同点在1,3) .ExecutorLanucher启动后会去和ResourceManager进行通信请求container 。

3.此时ResourceManager 会给 ApplicationMaster 分配一定量的 container 去启动executer.然后ExecutorLanucher去连接其他的NodeManager。来启动executer。但是executer 启动后向spark 本地的driver进程反向注册。

总结:yarn-client 用于调试 driver 启动在本地。本地可以看到log 方便调试。
而且本地调度会产生大量的网卡流量。
yarn-cluster 一般用于生产。但是调试不方便。
使用yarn 需要在spark-env.sh 中添加Hadoop home

欢迎关注,更多福利

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值