前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Spark 在Yarn上运行Spark应用程序

Spark 在Yarn上运行Spark应用程序

作者头像
smartsi
发布于 2019-08-07 06:12:10
发布于 2019-08-07 06:12:10
1.9K00
代码可运行
举报
文章被收录于专栏:SmartSiSmartSi
运行总次数:0
代码可运行

1. 部署模式

在 YARN 中,每个应用程序实例都有一个 ApplicationMaster 进程,该进程是为该应用程序启动的第一个容器。应用程序负责从 ResourceManager 上请求资源。一旦分配了资源,应用程序将指示 NodeManagers 启动容器。ApplicationMasters 消除了对活跃客户端的依赖:启动应用程序的进程可以终止,并且从在集群上由 YARN 管理的进程继续协作运行。

有关指定部署模式的选项,请参阅spark-submit选项

1.1 Cluster部署模式

在 Cluster 模式下,Spark Driver 在集群主机上的 ApplicationMaster 上运行,它负责向 YARN 申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉 Client,作业会继续在 YARN 上运行。

Cluster 模式不太适合使用 Spark 进行交互式操作。需要用户输入的 Spark 应用程序(如spark-shell和pyspark)需要 Spark Driver 在启动 Spark 应用程序的 Client 进程内运行。

1.2 Client部署模式

在 Client 模式下,Spark Driver 在提交作业的主机上运行。ApplicationMaster 仅负责从 YARN 中请求 Executor 容器。在容器启动后,Client 与容器通信以调度工作。

模式

Client模式

Cluster模式

Driver在哪运行

Client

ApplicationMaster

请求资源

ApplicationMaster

ApplicationMaster

启动 executor 进程

YARN NodeManager

YARN NodeManager

持久化服务

YARN ResourceManager 和 NodeManagers

YARN ResourceManager 和 NodeManagers

是否支持Spark Shell

Yes

No

2. 在YARN上运行Spark Shell应用程序

要在 YARN 上运行 spark-shell 或 pyspark 客户端,请在启动应用程序时使用 --master yarn --deploy-mode client 标志。

3. Example

3.1 以Cluster模式运行

以Cluster模式运行WordCount:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spark-submit \
--class com.sjf.example.batch.WordCount \
--master yarn \
--deploy-mode cluster \
--driver-memory 10g \
--executor-memory 12g \
--num-executors 20 \
--executor-cores 2 \
${RUN_HOME}/spark-example-jar-with-dependencies.jar \
${input_path} ${output_path}

该命令会打印状态,直到作业完成或按下 control-C。在 Cluster 模式下终止 spark-submit 进程不会像在 Client 模式下那样终止 Spark 应用程序。要监视正在运行的应用程序的状态,请运行 yarn application -list

3.2 以Client模式运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spark-submit \
--class com.sjf.example.batch.WordCount \
--master yarn \
--deploy-mode client \
--driver-memory 10g \
--executor-memory 12g \
--num-executors 20 \
--executor-cores 2 \
${RUN_HOME}/spark-example-jar-with-dependencies.jar \
${input_path} ${output_path}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python大数据之PySpark(四)SparkBase&Core
在哪个文件下面更改?spark-env.sh中增加YARN_CONF_DIR的配置目录
Maynor
2023/10/04
5200
Python大数据之PySpark(四)SparkBase&Core
【Spark】 Spark的基础环境 Day02
​ 当Spark Application运行到YARN上时,在提交应用时指定master为yarn即可,同时需要告知YARN集群配置信息(比如ResourceManager地址信息),此外需要监控Spark Application,配置历史服务器相关属性。
Maynor
2021/12/07
3430
【Spark】 Spark的基础环境 Day02
spark运行方式及其常用参数
yarn cluster模式:spark driver和application master在同一个节点上 yarn client模式:spark driver和client在同一个节点上,支持shell
jiewuyou
2022/09/29
6080
spark运行方式及其常用参数
Spark on Yarn资源配置
工作期间,我提交spark任务到yarn上,发现指定的资源(使用内存大小。使用core的个数)总是与yarn的UI页面显示的资源使用量不一致,写本文说明一下这个问题,以及介绍一下spark on yarn的资源配置。
CoderJed
2019/05/15
2.4K0
Spark on Yarn资源调优
Spark是专为大规模数据处理而设计的快速通用的计算引擎,具有速度快、支持多语言、移植性高的特点。而移植性高的体现就在于Spark的部署方式有多种模式,如:本地local、Standalone、Apache Mesos、Hadoop YARN、EC2、Mesos、K8S等等。
chimchim
2022/11/13
3930
Spark2.3.0 使用spark-submit部署应用程序
Spark的 bin 目录中的 spark-submit 脚本用于在集群上启动应用程序。可以通过一个统一的接口使用 Spark 所有支持的集群管理器,因此不必为每个集群管理器专门配置你的应用程序。
smartsi
2019/08/07
3K0
[1015]spark-submit提交任务及参数说明
spark-submit 可以提交任务到 spark 集群执行,也可以提交到 hadoop 的 yarn 集群执行。
周小董
2021/07/14
8.6K0
[1015]spark-submit提交任务及参数说明
Spark快速入门系列(7) | Spark环境搭建—standalone(4) 配置Yarn模式
官方文档地址:http://spark.apache.org/docs/latest/running-on-yarn.html
不温卜火
2020/10/28
5720
Spark快速入门系列(7) | Spark环境搭建—standalone(4) 配置Yarn模式
Spark环境搭建——on yarn集群模式
本篇博客,Alice为大家带来关于如何搭建Spark的on yarn集群模式的教程。
大数据梦想家
2021/01/27
8050
Spark环境搭建——on yarn集群模式
2021年大数据Spark(九):Spark On Yarn两种模式总结
包含两个部分:应用管理者AppMaster和运行应用进程Process(如MapReduce程序MapTask和ReduceTask任务),如下图所示:
Lansonli
2021/10/09
4790
Spark Spark {{JAVA_HOME}}找不到
发现换一台机器提交作业就没有问题,怀疑是版本的问题,经过对比,原来是我编译Spark所使用的Hadoop版本和线上Hadoop版本不一致导致的,当前使用Hadoop版本是2.7,而线上是使用的2.2。后来使用线上Hadoop版本重新编译了Spark,这个问题就解决了。
smartsi
2019/08/08
9880
带你理解并亲手实践 Spark HA 部署配置及运行模式
由于 Spark 是计算框架,还需要有底层存储系统、资源协调管理、分布式协作管理等框架等进行支撑,因此我们这里使用在《万字+50图,详解 Hadoop HA 完全分布式部署配置及运行调试》中部署的 Hadoop 作为 Spark 的存储及管理系统,在此基础上以 HA 模式来安装部署并运行 Spark 集群。
数人之道
2022/03/26
2.3K0
带你理解并亲手实践 Spark HA 部署配置及运行模式
Spark之三大集群模式—详解(3)
Standalone集群使用了分布式计算中的master-slave模型, master是集群中含有master进程的节点 slave是集群中的worker节点含有Executor进程
刘浩的BigDataPath
2021/04/13
1.2K0
Spark之三大集群模式—详解(3)
Yarn上运行spark-1.6.0
本文约定Hadoop 2.7.1安装在/data/hadoop/current,而Spark 1.6.0被安装在/data/hadoop/spark,其中/data/hadoop/spark为指向/data/hadoop/spark。
一见
2018/08/06
8550
【Spark篇】---Spark中资源和任务调度源码分析与资源配置参数应用
Spark中资源调度是一个非常核心的模块,尤其对于我们提交参数来说,需要具体到某些配置,所以提交配置的参数于源码一一对应,掌握此节对于Spark在任务执行过程中的资源分配会更上一层楼。由于源码部分太多本节只抽取关键部分和结论阐述,更多的偏于应用。
LhWorld哥陪你聊算法
2018/09/13
1.3K0
【Spark篇】---Spark中资源和任务调度源码分析与资源配置参数应用
工作常用之Spark调优[二】资源调优
先设定单个 Executor 核数,根据 Yarn 配置得出每个节点最多的 Executor 数量,每个节
Maynor
2022/09/27
7700
工作常用之Spark调优[二】资源调优
【Spark篇】---Spark中yarn模式两种提交任务方式
Spark可以和Yarn整合,将Application提交到Yarn上运行,和StandAlone提交模式一样,Yarn也有两种提交任务的方式。
LhWorld哥陪你聊算法
2018/09/13
2.4K0
【Spark篇】---Spark中yarn模式两种提交任务方式
Spark源码系列(七)Spark on yarn具体实现
本来不打算写的了,但是真的是闲来无事,整天看美剧也没啥意思。这一章打算讲一下Spark on yarn的实现,1.0.0里面已经是一个stable的版本了,可是1.0.1也出来了,离1.0.0发布才一个月的时间,更新太快了,节奏跟不上啊,这里仍旧是讲1.0.0的代码,所以各位朋友也不要再问我讲的是哪个版本,目前为止发布的文章都是基于1.0.0的代码。 在第一章《spark-submit提交作业过程》的时候,我们讲过Spark on yarn的在cluster模式下它的main class是org.apach
岑玉海
2018/02/28
1.7K0
spark-submit介绍
spark-submit脚本通常位于/usr/local/spark/bin目录下,可以用which spark-submit来查看它所在的位置,spark-submit用来启动集群中的应用,它使用统一的提交接口支持各种类型的集群服务器。为了将应用发布到集群中,通常会将应用打成.jar包,在运行spark-submit时将jar包当做参数提交。
Tyan
2019/05/25
3.3K0
Spark on YARN基础
不管使用哪种模式,Spark应用程序的代码是一模一样的,只需要在提交的时候通过--master参数来指定我们的运行模式即可
sparkle123
2020/11/24
6440
相关推荐
Python大数据之PySpark(四)SparkBase&Core
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文