经过几天闲暇时间的学习,终于又理解的深入了一些,关于Spark Client如何提交作业也更清晰了点。

在整体的流程图上是这样的:

大体的思路就是应用程序通过SparkSubmit提交程序后,自动在当前的JVM中启动Driver,然后与Master通信创建Excutor执行相应的任务。

自己整理了下流程图

以及的组件图:

可以看到大概是下面的步骤:

  1. 新建SparkContext
  2. 创建对应的scheduler和schedulerBackend
 val (sched, ts) = SparkContext.createTaskScheduler(this, master, deployMode)
_schedulerBackend = sched
_taskScheduler = ts
...
_taskScheduler.start()
  1. 启动scheduler的start方法,内部调用backend的start方法
  2. backend调用父类CoarseGrainedSchedulerBackend的start方法
override def start() {super.start()...client = new StandaloneAppClient(sc.env.rpcEnv, masters, appDesc, this, conf)client.start()
}
  1. 创建对应的drvierEndpoint
  2. 在backend的start()方法里面创建StandaloneAppClient
  3. 执行StanaloneAppClient对象的start方法,内部创建ClientEndpoint

DriverEndpoint和ClientEndpoint都会跟Master进行通信,接下来的处理就是编译驱动程序的代码,发送给excutor进行相应的处理。

转载于:https://www.cnblogs.com/xing901022/p/8319482.html

Spark Client启动原理探索相关推荐

  1. 4、Eureka 源码解析 之 Eureka Client 启动原理分析

    在前面的一篇文章 3.Eureka 源码解析 之 Eureka Server 启动原理分析当中我们分析了一下 Eureka Server 的启动.在集群环境下 Eureka Server 相互之前需要 ...

  2. 深入分析Spark任务调度的原理--Java后端同学入门Spark编程系列

    作者:陌北有棵树,Java人,架构师社区合伙人! 之前写了一篇:<我作为Java后端,分享一下入门Spark编程的经历!> 上篇是Spark入门的第一篇,写了一些关于Spark编程中RDD ...

  3. 第03课:Spring Boot 启动原理

    引言 Spring Boot 大大简化了我们的开发配置,节省了大量的时间,确实比较方便.但是对于新手来说,如果不了解个中原理,难免会遇到坑. 本文作者将带领大家走近神秘的 Spring Boot,一步 ...

  4. 面试官:能说下 SpringBoot 启动原理吗?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 Spri ...

  5. 从无盘启动看 Linux 启动原理

    作者:bobyzhang,腾讯 IEG 运营开发工程师 0. 故事的开始 0.1 为什么和做什么 最近家里买了对音响,我需要一个数字播放器.一凡研究后我看上了 volumio(https://volu ...

  6. spark任务shell运行_大数据系列:Spark的工作原理及架构

    介绍 本Apache Spark教程将说明Apache Spark的运行时架构以及主要的Spark术语,例如Apache SparkContext,Spark shell,Apache Spark应用 ...

  7. springboot启动原理_SpringBoot启动原理及相关流程

    一.springboot启动原理及相关流程概览 springboot是基于spring的新型的轻量级框架,最厉害的地方当属自动配置.那我们就可以根据启动流程和相关原理来看看,如何实现传奇的自动配置 二 ...

  8. Spring Boot:(二)启动原理解析

    Spring Boot:(二)启动原理解析 前言 前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏. ...

  9. Spring Boot(18)---启动原理解析

    Spring Boot(18)---启动原理解析 前言 前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会 ...

  10. Spark配置启动脚本分析

    2019独角兽企业重金招聘Python工程师标准>>> 今天想停止spark集群,发现执行stop-all.sh的时候spark的相关进程都无法停止.提示: no org.apach ...

最新文章

  1. Python 基础 一
  2. Minio分布式集群示例:8个节点,每节点1块盘
  3. MAVEN简介之——settings.xml
  4. Minimum Inversion Number HDU - 1394(求一个数字环的逆序对+多种解法)
  5. Java元数据总结:Java注释的使用和定义
  6. C#开发笔记之04-如何用C#优雅的计算个人所得税?
  7. 数据逻辑讨论计算机,1绪论信息技术算法与程序福建教师招考.ppt
  8. Winform 分页用户自定义控件( ML.Pager.WinControl)
  9. 混合现实:未来七大航空制造技术之一!
  10. 闲鱼选品的6个维度,附赠35个爆款品类!
  11. 爬虫-反爬二:有道词典js加密
  12. MPLAB X IDE调试代码
  13. 常见浏览器User-Agent
  14. b站视频-尚硅谷jQuery教程张晓飞老师-笔记
  15. 1扩展组件 --FEBE
  16. 将“心”比心:心情好坏心脏知
  17. 小白装机后,电脑连接不上网络怎么办?
  18. 近段时间的学习碎片整理(7)
  19. 依赖注入神器:Dagger2详解系列
  20. 手把手教你!100行代码,用Python做一个“消灭病毒”的小游戏

热门文章

  1. Python进阶(十四) logging标准库
  2. 配置codeblocks 的养眼colour theme ;鼠标颜色与型状配置,界面汉化,以及调试入门
  3. leetcode 703. 数据流中的第K大元素(Kth Largest Element in a Stream)
  4. 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP 1
  5. Loadrunner 11检查点使用方法总结
  6. 玲珑学院 1138 - 震惊,99%+的中国人都会算错的问题
  7. 关于文章cisco漏洞4786
  8. Mac - 让NSView快捷的实现阴影效果
  9. 电脑是个神奇的东西!
  10. 《Java核心技术卷一》学习笔记(一)