一 介绍

基于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两种提交模式分析相关推荐

  1. flink on yarn两种提交模式

    在yarn上运行一个任务,必须要启动HDFS!!! Flink On Yarn的两种提交模式 提交一个flink任务给yarn:指定yid 一般是使用第一种提交模式. 取消一个flink任务 flin ...

  2. 2021年大数据Spark(九):Spark On Yarn两种模式总结

    目录 Spark On Yarn两种模式 引入 一.当一个MR应用提交运行到Hadoop YARN上时 二.当一个Spark应用提交运行在集群上时 注意 client 模式 cluster 模式 总结 ...

  3. Spark _05Standalone模式两种提交任务方式

    Standalone模式两种提交任务方式 Standalone-client提交任务方式 提交命令 ./spark-submit --master spark://node1:7077 --class ...

  4. submit按钮html,html的两种提交按钮submit和button

    转自:http://baiying.blog.51cto.com/1068039/1319784 html按钮有两种: 和登录 这两种在页面上看起来好像一样没什么区别,但是这两种是有区别的. 1,如果 ...

  5. 根据官网文档看Spark Streaming对接Kafka的两种方式, 以及如何实现Exactly Once语义

    注: 本文算是本人的学习记录, 中间可能有些知识点并不成熟, 不能保证正确性. 只能算是对官网文档作了个翻译和解读, 随时有可能回来更新和纠错 上一篇文章讨论了Spark Streaming的WAL( ...

  6. Spark读取Hive数据的两种方式与保存数据到HDFS

    Spark读取Hive数据的两种方式与保存数据到HDFS Spark读取Hive数据的方式主要有两种 1. 通过访问hive metastore的方式,这种方式通过访问hive的metastore元数 ...

  7. Ext.Ajax.request和formPanel.getForm().submit()两种提交方法的异同:

    Ext.Ajax.request和formPanel.getForm().submit()两种提交方法的异同: 1. 相同点: a) 都是使用异步提交的方式: b) 默认都是使用POST方式来提交数据 ...

  8. ASP.NET Get和Post两种提交的区别

    表单form的提交有两种方式,一种是get的方法,一种是post 的方法.看下面代码,理解ASP.NET Get和Post两种提交的区别: < form id="form1" ...

  9. form表单与ajax的两种提交方式

    一.form表单与ajax两种提交方式使用的场景: 1)form表单提交适用于跳转到另一个页面,form标签中的数据通过submit的方式提交到后台,提交成功后会跳转到另一个页面,但没有返回值. 2) ...

最新文章

  1. photoshop修复面部的皱纹
  2. scipy是python下的什么_python – cholesky在numpy和scipy之间有什么区别?
  3. hyper-V环境下虚拟机和宿主机之间时钟不统一
  4. hdu 5248(二分+贪心)
  5. CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号...
  6. img超出div width时, jQuery动态改变图片显示大小
  7. Linux远程管理协议相关知识介绍
  8. matlab builder for java下载,Matlab Builder JA - Compile Matlab into a Java jar - Free Version?
  9. c语言%m,C语言中rand()%m是啥意思?
  10. NeHe OpenGL第二十五课:变形
  11. 羊皮卷的实践-第二十章
  12. 【18】Python半成品购物车
  13. VS2012 注册密钥
  14. 考察一名UI设计师的能力素质模型(转)
  15. mac上使用Mounty软件报错The volume NETAC is not re-mountable in read/write mode
  16. MIP 问题解决方案大全(2018-06更新)
  17. SparkStreaming面试题
  18. 提取Windows主题中的图片
  19. flash download failed 问题解决
  20. 海关数据正确引用方式

热门文章

  1. python如何读取文件数据恢复_删python目录
  2. java 图片的路径_【JAVA技术】如何展现绝对路径下的图片
  3. Java后端学习体系(韩顺平)
  4. Python进制转换(利用栈)
  5. Python机器学习:线型回归法008实现多元线性回归
  6. How to: Create and Initialize Trace Listeners
  7. python list大小_4个python常用高阶函数的使用方法
  8. 什么是*args和**kwargs?
  9. 解决gensim fasttext官方案例报错TypeError: Either one of corpus_file or corpus_iterable value must be provide
  10. 解决pytorch多进程ValueError: Error initializing torch.distributed using env:// rendezvou...报错