最近总结了一些关于spark core的内容,今天先来和大家分享一下spark的运行模式。


spark运行模式

(1)local:在本地eclipse、IDEA中写spark代码运行程序,一般用于测试

(2)standalone:spark自带的资源调度框架,支持分布式集群搭建。Spark可以运行在standalone集群上

(3)Yarn:Hadoop生态圈中的资源调度框架,spark可以基于Yarn运行

(4)Mesos: 资源调度框架 (用的比较少)

下面,来给大家总结一下spark基于standalone和yarn集群上提交作业的流程:

有两种可选的运行方式:

(1)client 一般用于测试环境

(2)cluster 用于实际生产环境

Spark基于standalone集群提交任务的流程

1.Client模式:

1)集群启动后,worker向Master汇报资源(资源指core和内存)

2)Master掌握了集群的资源

3)客户端提交spark任务,首先在客户端启动Driver

4)客户端向Master申请资源

5)Master找到满足资源的worker节点,在worker节点上启动Excutor进程,反向注册给Driver。

6)Driver向Worker发送Task,监控task的执行,回收结果。

流程图示:

注:(1)Driver在客户端启动

(2)每个SparkApplication有独立的Driver和Excutor

(3)Driver和集群中的worker会有大量的通信,如果有很多的apllication提交,而这种client运行方式中Driver均在客户端启动,就很容易造成客户端节点的网卡流量激增问题。所以这种方式适用于程序测试环境,不适用与生产环境。

(4)在客户端可以查看task执行过程和结果,方便调错。

2.Cluster模式:

spark基于standalone集群的cluster模式的提交任务流程:

1) 集群启动后worker向Master汇报资源

2) Master掌握集群资源

3) 客户端提交sparkApplication,客户端向Master申请启动Driver。

4) Master收到请求后随机找一台节点启动Driver。

5) Driver向Master申请资源用于启动Application

6) Master找到满足资源的worker节点,启动Excutor,反向注册给Driver

7) Driver发送task到worker节点,监控task,回收结果(collect方法)

流程图示:

注:(1)先启动Driver,再启动Application

(2)Driver在随机一台worker节点上启动,当有很多的SparkApplication提交时,这些Application作业的Driver都是分布在集群中不同worker节点上的,解决了client模式中单节点网卡流量激增的问题,适用于生产环境。

(3)在客户端看不到task的执行过程以及运行结果,要在WebUI中查看

Spark基于yarn集群提交任务的流程

1.Client模式:

流程总结:

1) NodeManager向ResourceManager汇报资源

2) ResourceManager掌握集群资源

3) 客户端提交Application,在客户端启动Driver

4) 客户端向ResourceManager申请启动ApplicationMaster。

5) ResourceManager收到请求之后随机找一台NodeManager启动ApplicationMaster

6) ApplicationMaster启动之后向ResourceManager申请资源用于启动Excutor,

7) ResourceManager收到请求后返回一批满足要求的NodeManager节点给AM

8) ApplicationMaster连接NodeManager启动Excutor

9) Excutor反向注册给Driver

10)Driver发送task给NodeManager,监控task执行,并回收结果

流程图示:

2.Cluster模式:

Spark基于Yarn的Cluster提交作业流程总结:

1) 集群启动后,NodeManager向ResourceManager汇报资源

2) ResourceManager掌握了集群资源

3) 客户端提交SparkApplication

4) 客户端向ResourceManager申请启动ApplicationMaster

5) ResourceManager随机找一台NodeManager启动ApplicationMaster(Driver)

6) ApplicationMaster向ResourceManager申请资源用于启动Excutor

7) ResourceManager返回一批满足资源的NodeManager节点给ApplicationMaster

8) ApplicationMaster在这些NodeManager上启动Excutor

9) Excutor反向注册给Driver(ApplicationMaster)

10) ApplicationMaster发送task给NodeManager,监控task执行,回收结果

流程图示:

总结:

spark提交到yarn_详细总结spark基于standalone、yarn集群提交作业流程相关推荐

  1. 基于YARN集群构建运行PySpark Application

    文章转载:https://www.tuicool.com/articles/eaYVN3v Spark Application可以直接运行在YARN集群上,这种运行模式,会将资源的管理与协调统一交给Y ...

  2. spark 序列化错误 集群提交时_spark 面试题(2)

    33.选择题 二.选择题 1. Spark 的四大组件下面哪个不是 (D ) A.Spark Streaming    B. Mlib C Graphx    D.Spark R 2.下面哪个端口不是 ...

  3. 本地提交spark_Spark在Windows下运行,本地提交spark到远程yarn集群

    [问题]Spark在windows能跑集群模式吗? 我认为是可以的,但是需要详细了解cmd命令行的写法.目前win下跑spark的单机模式是没有问题的. [关键点]spark启动机制容易被window ...

  4. 向spark standalone集群提交任务

    向spark standalone集群提交任务 文档链接 #切换到spark安装目录,执行下面一条命令,192.168.0.10是master的ip, examples/src/main/python ...

  5. 向Spark集群提交任务

    1.启动spark集群. 启动Hadoop集群 cd /usr/local/hadoop/ sbin/start-all.sh 启动Spark的Master节点和所有slaves节点 cd /usr/ ...

  6. 搭建Spark On YARN集群

    文章目录 零.本讲学习目标 一.Spark On YARN架构 (一)client提交方式 (二)cluster提交方式 二.搭建Spark On YARN集群 (一)搭建Spark Standalo ...

  7. Spark on Yarn集群多Application并行执行

    在工作中遇到向Spark集群提交多个任务,并且这些任务是需要同时执行的.但是遇到很多错误,所以把遇到的问题记录下来. 修改hadoop/etc/hadoop/yarn-site.xml文件 需要添加的 ...

  8. Spark基础学习笔记06:搭建Spark On YARN集群

    文章目录 零.本讲学习目标 一.Spark On YARN架构 (一)client提交方式 (二)cluster提交方式 二.搭建Spark On YARN集群 (一)搭建Spark Standalo ...

  9. Spark基础学习笔记:搭建spark on yarn 集群

    一.Spark On YARN架构 Spark On YARN模式遵循YARN的官方规范,YARN只负责资源的管理和调度,运行哪种应用程序由用户自己实现,因此可能在YARN上同时运行MapReduce ...

最新文章

  1. Spring基础专题——第八章(事务)
  2. 《Excel最强功能-数据透视表》 网课笔记
  3. SAP Spartacus的defaultUrlMatcher
  4. C# 特性(Attribute)
  5. PHP autoload实践
  6. 程序员的七夕:转给此刻你想起的那位!
  7. Python爬虫进阶必备 | X中网密码加密算法分析
  8. php生成静态翻页,PHP高手,我刚刚学PHP,在生成静态分页遇到了点有关问题,就是翻页的有关问题,希望可以給出一个漂亮完整的翻页代码,多谢...
  9. 当你的服务器被黑了,一定要看是不是犯了这 5 点错误
  10. IOS:APP三种状态下收到推送后的跳转操作
  11. HTML5期末大作业:个人网站设计——简单响应式个人博客HTML模板(8页面) HTML+CSS+JavaScript...
  12. centos7进程限制、打开文件限制等
  13. 对数正态随机数c语言程序,对数正态随机数
  14. GBase 8c基础操作
  15. 解决腾讯地图标记多个点,只渲染最后一个点问题
  16. oracle2108什么意思,Oracle存储过程(包:PACK_KPI_KERNEL For YS三度评价体系)
  17. 《设计模式之禅》观后感-六大设计原则(一)
  18. 程序员段子:等我敲完这行代码,就和你离婚!
  19. SpringBoot之:SpringBoot中使用HATEOAS
  20. 《新媒体管理师》初中高级报考条件是什么?带你详细了解,看看自己符合报名高级新媒体管理师吗?

热门文章

  1. 如何在CPU上优化GEMM(下)
  2. Python分析离散心率信号(上)
  3. CVPR2020:点云弱监督三维语义分割的多路径区域挖掘
  4. 2021年大数据常用语言Scala(十九):基础语法学习 iterator迭代器
  5. 解决在onCreate()过程中获取View的width和Height为0的4种方法
  6. POJ 3268 D-Silver Cow Party
  7. Leetcode(18)-四数之和
  8. javascript 执行环境细节分析、原理-12
  9. JavaScript--正则
  10. 虚拟机VMware下CentOS6.6安装教程图文详解