Spark On Yarn 运行模式(详细)
Spark
在spark 中,支持4中运行模式:
1)Local:开发时使用
2)Standalone: 是spark 自带的,如果一个集群是standalong 的话,那么就需要在多台机器上同时部署spark 环境
3)Yarn:建议大家在生产上使用该模式,统一使用yarn 进行整个集群作业(mr、spark)的资源调度
4)Mesos :跟yarn使用一样都是资源调度
不管使用什么模式,spark应用程序的代码都是一模一样的,只需要在提交的时候通过--master 参数来指定我们的运行模式即可
Client
Driver运行在client端(提交spark作业的机器)
client会和请求到container进行通信来完成作业的调度和执行,client是不能退出的
日志信息会在控制台输出:便于我们测试
Cluster
Driver运行在ApplicationMaster 中
Client 只要提交完作业之后就可以关掉,因为作业已经在YARN上运行了
日志在终端看不到的,因为日志是在Driver 上,只能通过yarn logs -applicationIdapplication_id
1.配置
安装Hadoop:需要安装HDFS模块和YARN模块,spark运行时要把jar包放到HDFS上。
安装Spark:不需要启动Spark集群,在client节点配置中spark-env.sh添加JDK和HADOOP_CONF_DIR目录,Spark程序将作为yarn的客户端用户提交任务。
export JAVA_HOME=/usr/local/jdk1.8.0_161export HADOOP_CONF_DIR=/usr/local/src/hadoop-2.6.1/etc/hadoop
启动HDFS和YARN
2.yarn-client和yarn-cluster提交任务的方式
client模式:
./bin/spark-submit \
--master yarn \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 2 \
--class org.apache.spark.examples.SparkPi \
examples/jars/spark-examples_2.11-2.0.2.jar \
1000
--master yarn(默认client模式) 等价于 yarn-client(已弃用)和--master yarn --deploy-mode client
spark-shell和pypark必须使用yarn-client模式,因为这是交互式命令,Driver需运行在本地。
cluster模式:
./bin/spark-submit \
--master yarn \
--deploy-mode cluster \
--class org.apache.spark.examples.SparkPi \
examples/jars/spark-examples_2.11-2.0.2.jar \
1000
3.两种模式的区别
cluster模式:Driver程序在YARN中运行,Driver所在的机器是随机的,应用的运行结果不能在客户端显示只能通过yarn查看,所以最好运行那些将结果最终保存在外部存储介质(如HDFS、Redis、Mysql)而非stdout输出的应用程序,客户端的终端显示的仅是作为YARN的job的简单运行状况。
client模式:Driver运行在Client上,应用程序运行结果会在客户端显示,所有适合运行结果有输出的应用程序(如spark-shell)
4.原理
cluster模式:
Spark Driver首先作为一个ApplicationMaster在YARN集群中启动,客户端提交给ResourceManager的每一个job都会在集群的NodeManager节点上分配一个唯一的ApplicationMaster,由该ApplicationMaster管理全生命周期的应用。具体过程:
1. 由client向ResourceManager提交请求,并上传jar到HDFS上
这期间包括四个步骤:
a).连接到RM
b).从RM的ASM(ApplicationsManager )中获得metric、queue和resource等信息。
c). upload app jar and spark-assembly jar
d).设置运行环境和container上下文(launch-container.sh等脚本)
2. ResouceManager向NodeManager申请资源,创建Spark ApplicationMaster(每个SparkContext都有一个ApplicationMaster)
3. NodeManager启动ApplicationMaster,并向ResourceManager AsM注册
4. ApplicationMaster从HDFS中找到jar文件,启动SparkContext、DAGscheduler和YARN Cluster Scheduler
5. ResourceManager向ResourceManager AsM注册申请container资源
6. ResourceManager通知NodeManager分配Container,这时可以收到来自ASM关于container的报告。(每个container对应一个executor)
7. Spark ApplicationMaster直接和container(executor)进行交互,完成这个分布式任务。
client模式:
在client模式下,Driver运行在Client上,通过ApplicationMaster向RM获取资源。本地Driver负责与所有的executor container进行交互,并将最后的结果汇总。结束掉终端,相当于kill掉这个spark应用。一般来说,如果运行的结果仅仅返回到terminal上时需要配置这个。
客户端的Driver将应用提交给Yarn后,Yarn会先后启动ApplicationMaster和executor,另外ApplicationMaster和executor都 是装载在container里运行,container默认的内存是1G,ApplicationMaster分配的内存是driver- memory,executor分配的内存是executor-memory。同时,因为Driver在客户端,所以程序的运行结果可以在客户端显 示,Driver以进程名为SparkSubmit的形式存在。
在client模式下,Driver运行在Client上,通过ApplicationMaster向RM获取资源。本地Driver负责与所有的executor container进行交互,并将最后的结果汇总。结束掉终端,相当于kill掉这个spark应用。一般来说,如果运行的结果仅仅返回到terminal上时需要配置这个。
客户端的Driver将应用提交给Yarn后,Yarn会先后启动ApplicationMaster和executor,另外ApplicationMaster和executor都 是装载在container里运行,container默认的内存是1G,ApplicationMaster分配的内存是driver- memory,executor分配的内存是executor-memory。同时,因为Driver在客户端,所以程序的运行结果可以在客户端显 示,Driver以进程名为SparkSubmit的形式存在。
Spark On Yarn 运行模式(详细)相关推荐
- 本地提交spark_spark快速入门(三)-------spark部署及运行模式
spark支持多种部署方案,包括spark自带的standalone资源调度模式(StandAlone):运行在hadoop的yarn资源调度框架中(SparkOnYARN):local本地模式:可以 ...
- spark四种运行模式
spark的核心组件 1.1Driver Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行 工作.Driver 在 Spark 作业执行时主要负责: 1.1. ...
- 【Spark】standalone运行模式
简介: standalone 模式,是 spark 自己实现的,它是一个资源调度框架.这里我们要关注这个框架的三个节点: 1)client 2)master 3)worker spark 应用程序有一 ...
- Spark On Yarn 运行项目
在spark中,支持4中运行模式: Local:往往使用本地开发的时候使用. StandAlone:是spark自带的,如果一个集群是StandAlone模式的话,那么就需要在多台机器上同时部署Spa ...
- spark on yarn yarn-client模式实现源码走读
Spark版本2.4.0 在SparkContext的初始化过程中,将会根据配置的启动模式来选择不同的任务调度器TaskScheduler,而这个不同模式的实现也是在这里根据选择的TaskSchedu ...
- Spark面试:Spark on yarn 运行流程
一: Spark on YARN能让Spark计算模型在云梯YARN集群上运行,直接读取云梯上的数据,并充分享受云梯YARN集群丰富的计算资源. 二: 基于YARN的Spark作业首先由客户端生成作业 ...
- spark shell的运行模式汇总
scala语言 模式 启动命令 local模式 spark-shell --master local yarn模式 spark-shell --master yarn standalone ...
- python编程模式是什么_python 开发的三种运行模式详细介绍
Python 三种运行模式 Python作为一门脚本语言,使用的范围很广.有的同学用来算法开发,有的用来验证逻辑,还有的作为胶水语言,用它来粘合整个系统的流程.不管怎么说,怎么使用python既取决于 ...
- Spark on YARN - Clinet模式运行spark报错问题
应用场景 安装部署完完全分布式的spark后,发现yarn-cluster模式可以运行不报错,但是yarn-client报错,无法进行计算PI的值,导致spark并不能使用,报错信息如下所示,只需要修 ...
最新文章
- 漫画:有趣的“帽子问题”
- 【Graph4NLP】阿尔伯塔大学博士毕业论文:基于图结构的自然语言处理
- 我应该如何处理MySQL中的--secure-file-priv?
- LAMP架构之编译安装httpd+(php-fpm)+mariadb
- HDU.2561 第二小整数(water)
- JNI与底层调用-2
- html body 边框,html – 如何在表的tbody / thead部分创建边框?
- Apache2.4配置ssl
- python字符串处理函数汇总_python字符串函数总结
- 聊聊 | 他在Google Play安全奖励计划贡献榜单上排名第一
- delphi 防止程序双开 更好的 Best!
- 心海软件学生测试系统,心海软件心理管理系统
- Chrome手势插件
- 2021-07-08解决大部分lanzous蓝奏云链接无法打开
- Learning to See in the Dark阅读札记
- JDOM/XPath解析XML简单示例
- apache hop 搭建_server端
- Bing Maps中使用Google全球本地化搜索服务详解
- 页面跳转javascript操作referer
- 成都奔驰改装改装通风座椅 蔚一车改
热门文章
- 如何访问 SAP Screen Personas 培训系统以及完成一个最简单的例子
- SAP Spartacus list item点击之后的detail页面跳转
- Windows 10升级1909之后,很多软件不支持高分辨率而造成字体过小
- 一个filter引起的404错误
- SAP GraphQL console UI的实现原理
- progressIndicator in SalesPipeline
- 阮一峰react demo代码研究的学习笔记 - demo8 debug - click triggers state change
- SAP ui5 shell open loading dialog
- SAP CRM中间件sales status调试
- Important table for SEGW