spark基础之基于yarn两种提交模式分析
一 介绍
基于YARN的提交模式,总共有2种:一种是基于YARN的yarn-cluster模式;一种是基于YARN的yarn-client模式。
需要将提交应用程序的spark-submit的脚本中加上--master参数,设置为yarn-cluster或者yarn-client。如果没有设置,默认就是standalone模式。
spark-submit --class com.spark.sql.SyncHive2MySQL \
--master yarn-client/yarn-cluster \
--deploy-mode client/cluster \
--num-executors 1 \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
--conf "spark.ui.port=4040"
/opt/run/spark-app.jar
二 Spark ON Yarn 的 Job History 配置
# yarm-site.xml 需要开启日志聚合功能
yarn.log-aggregation-enabled= true
# 配置log dir
yarn.log-aggregation-enbaled = true
yarn.log,server.urtl:
http://hadoop-all-02:19888.jobhistory.job
# Spark的job history 服务启动
start-historyserver.sh(18080)
# 在spark-defaults中配置,将event归档
spark.eventLog.enabled true
spark.eventLog.dirhdfs://hdfs-cluster/spark-history
# spark_env.sh,配置SPARK_HISTORY_OPTS然后展示归档文件的的event
SPARK_HISTORY_OPTS=-Dspark.history.fs.logDirectory=hdfs://hdfs-cluster/spark-history–Dspark.history.ui.port=18080
spark.yarn.historyServer.addresshtttp://hadoop-all-01:18080
三 yarn-cluster 流程图
3.1 提交应用程序,发送请求到RM,向RM申请启动ApplicationMaster的Container资源。
3.2 RM分配该Container资源到某一个NM,通知该NM启动ApplicationMaster,这个AM就相当于Driver,用于分配
3.3 NM启动Application Master
3.4 Application Master启动之后,向RM申请一批Container资源,用韵启动Executors
3.5 分配Container资源到各个NM
3.6 启动Executor
3.7 Executor然后向Driver反向注册
四 yarn-client流程图
4.1 提交应用程序,向RM发送请求,申请启动Application Master所需资源
4.2 RM分配Container资源给某一个NM
4.3 该NM根据分配的Container启动ApplicationMaster,这个ApplicationMaster与yarn-cluster中的AM区别在于:它不运行SparkContext,只是和SparkContext进行联系,进行资源分派
4.4 SparkContext启动完毕后,与AM建立通信,向RM注册申请运行Executor的Container资源
4.5 RM通知NM根据分配的Container资源启动Executor
4.6 Executor启动之后,需要向SparkContext反向注册,申请任务集
4.7 SparkContext分配任务集给Executor,并向DriverEndpoint汇报运行状态
五MapReduce On YARN的流程:
# 客户端向RM申请Container资源运行AM
# 分配资源后,RM通知NM启动AM
# AM向RM申请Container资源运行Job
# 通知NM启动相关的Task
# AM 监控和调度Task的运行
spark基础之基于yarn两种提交模式分析相关推荐
- flink on yarn两种提交模式
在yarn上运行一个任务,必须要启动HDFS!!! Flink On Yarn的两种提交模式 提交一个flink任务给yarn:指定yid 一般是使用第一种提交模式. 取消一个flink任务 flin ...
- 2021年大数据Spark(九):Spark On Yarn两种模式总结
目录 Spark On Yarn两种模式 引入 一.当一个MR应用提交运行到Hadoop YARN上时 二.当一个Spark应用提交运行在集群上时 注意 client 模式 cluster 模式 总结 ...
- Spark _05Standalone模式两种提交任务方式
Standalone模式两种提交任务方式 Standalone-client提交任务方式 提交命令 ./spark-submit --master spark://node1:7077 --class ...
- submit按钮html,html的两种提交按钮submit和button
转自:http://baiying.blog.51cto.com/1068039/1319784 html按钮有两种: 和登录 这两种在页面上看起来好像一样没什么区别,但是这两种是有区别的. 1,如果 ...
- 根据官网文档看Spark Streaming对接Kafka的两种方式, 以及如何实现Exactly Once语义
注: 本文算是本人的学习记录, 中间可能有些知识点并不成熟, 不能保证正确性. 只能算是对官网文档作了个翻译和解读, 随时有可能回来更新和纠错 上一篇文章讨论了Spark Streaming的WAL( ...
- Spark读取Hive数据的两种方式与保存数据到HDFS
Spark读取Hive数据的两种方式与保存数据到HDFS Spark读取Hive数据的方式主要有两种 1. 通过访问hive metastore的方式,这种方式通过访问hive的metastore元数 ...
- Ext.Ajax.request和formPanel.getForm().submit()两种提交方法的异同:
Ext.Ajax.request和formPanel.getForm().submit()两种提交方法的异同: 1. 相同点: a) 都是使用异步提交的方式: b) 默认都是使用POST方式来提交数据 ...
- ASP.NET Get和Post两种提交的区别
表单form的提交有两种方式,一种是get的方法,一种是post 的方法.看下面代码,理解ASP.NET Get和Post两种提交的区别: < form id="form1" ...
- form表单与ajax的两种提交方式
一.form表单与ajax两种提交方式使用的场景: 1)form表单提交适用于跳转到另一个页面,form标签中的数据通过submit的方式提交到后台,提交成功后会跳转到另一个页面,但没有返回值. 2) ...
最新文章
- photoshop修复面部的皱纹
- scipy是python下的什么_python – cholesky在numpy和scipy之间有什么区别?
- hyper-V环境下虚拟机和宿主机之间时钟不统一
- hdu 5248(二分+贪心)
- CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号...
- img超出div width时, jQuery动态改变图片显示大小
- Linux远程管理协议相关知识介绍
- matlab builder for java下载,Matlab Builder JA - Compile Matlab into a Java jar - Free Version?
- c语言%m,C语言中rand()%m是啥意思?
- NeHe OpenGL第二十五课:变形
- 羊皮卷的实践-第二十章
- 【18】Python半成品购物车
- VS2012 注册密钥
- 考察一名UI设计师的能力素质模型(转)
- mac上使用Mounty软件报错The volume NETAC is not re-mountable in read/write mode
- MIP 问题解决方案大全(2018-06更新)
- SparkStreaming面试题
- 提取Windows主题中的图片
- flash download failed 问题解决
- 海关数据正确引用方式
热门文章
- python如何读取文件数据恢复_删python目录
- java 图片的路径_【JAVA技术】如何展现绝对路径下的图片
- Java后端学习体系(韩顺平)
- Python进制转换(利用栈)
- Python机器学习:线型回归法008实现多元线性回归
- How to: Create and Initialize Trace Listeners
- python list大小_4个python常用高阶函数的使用方法
- 什么是*args和**kwargs?
- 解决gensim fasttext官方案例报错TypeError: Either one of corpus_file or corpus_iterable value must be provide
- 解决pytorch多进程ValueError: Error initializing torch.distributed using env:// rendezvou...报错