Spark执行流程详解
1、在命令行执行提交命令时,在spark-submit脚本中,调用了SparkSubmit类中的mainMethod.invoke方法,这个类通过反射,调用我们自定义的类。
2、我们自定义类中的main方法开始执行,初始化了SparkConf和SparkContext,将 Driver 启动起来,同时构造出来DAGScheduler和TaskScheduler。
3、Driver端会对我们的代码进行解析,执行到 Action 算子,这个阶段会产生 DAG 血缘依赖关系,但是并没有真正执行,
4、执行 Action 算子,当程序触发action算子的时候就会产生一个job,会调用DagScheduler中的runjob方法来提交任务。
5、DAGScheduler 会对提交的 Job 进行 Stage 切分 (程序会拿到最后一个rdd(finalRDD)来创建一个ResultStage,得到ResultStage之后,就正式的开始切分stage,从后往前遍历,一旦遇到窄依赖,就把rdd加入到当前的stage中,一旦遇到宽依赖,就会结束当前的stage,重新起动一个新的ShuffleMapStage。继续往前遍历,一直到rdd已经没有父依赖,整个切分结束)。
6、当切分完了stage之后,就开始调用submitStage提交stage(从最后一个ResultStage开始触发提交,进行深度优先遍历,从前向后提交)。
7、将stage调用模式匹配生成不同的task(程序会根据提交stage的不同,调用模式匹配生成ShuffleMapTask和ResultTask)。DagScheduler把当前提交的stage中的这么一些功能相同,处理的数据不同的task,组装成TaskSet,将TaskSet发送给TaskScheduler。
8、TaskScheduler会把TaskSet解压,生成task,然后把task进行序列化。
9、TaskSchedule向Master注册Application,申请资源。
10、Master收到Application的注册请求后,会根据自己的资源调度算法,在spark集群的worker上启动一个或多个Executor进程。
11、TaskScheduler会把序列化好的task递交到Executor上面,Executor将task放入线程池进行运行。
12、执行结束后,将执行结果反馈给Driver 端,然后进行资源注销。
Spark执行流程详解相关推荐
- MySQL系列---架构与SQL执行流程详解
文章目录 1. 背景 2. 架构体系 2.1 架构图 2.2 模块详解 2.3 架构分层 3. 查询SQL语句执行流程 3.1 连接 3.1.1 MySQL支持的通信协议 3.1.2 通信方式 3.2 ...
- statement执行insert into语句_【图文并茂】源码解析MyBatis ShardingJdbc SQL语句执行流程详解...
源码分析Mybatis系列目录: 1.源码分析Mybatis MapperProxy初始化[图文并茂] 2.源码分析Mybatis MappedStatement的创建流程 3.[图文并茂]Mybat ...
- 19. OP-TEE中TA与CA执行流程详解-------软件架构篇
历经一年多时间的系统整理合补充,<手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解 >一书得以出版,书中详细介绍了TEE以及系统安全中的所有内容,全书按照从硬件到软件, ...
- DHCP执行流程详解
DHCP执行流程介绍 DHCP简介 DHCP大致执行流程 新主机向DHCP Server申请IP地址 DHCP Server将分配好的IP发送给新主机 新主机发送DHCP Request广播数据包,告 ...
- data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解
本文源码:GitHub || GitEE 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面, ...
- spring mvc返回页面显示空白_Spring 框架基础(06):Mvc架构模式简介,执行流程详解...
一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面,在改进和个性化定制界面及用户交互的同时,不 ...
- springmvc的执行流程详解
1.什么是MVC MVC是Model View Controller的缩写,它是一个设计模式 2.springmvc执行流程详细介绍 第一步:发起请求到前端控制器(DispatcherServlet) ...
- Spring 框架基础(06):Mvc架构模式简介,执行流程详解
本文源码:GitHub·点这里 || GitEE·点这里 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集 ...
- .net mvc actionresult 返回字符串_Spring 框架基础(06):Mvc架构模式简介,执行流程详解
一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面,在改进和个性化定制界面及用户交互的同时,不 ...
最新文章
- word2vec如何得到词向量
- tomcat点击startup.bat闪退解决办法
- CentOS7手动修改系统时间
- 很实用的jQuery事件 - toggle() 方法
- android选择头像弹窗,Android App开发常用功能之用户头像选择-Go语言中文社区
- C# 事务提交(非数据库)
- Linux下服务器搭建(1)——Linux下搭建FTP服务器 vsftpd服务
- Facebook 实时聊天架构日均处理数十亿条消息!
- [TensorRT] INTERNAL ERROR: Assertion failed: mem = nullpt
- C++ typeid输出类型
- 已会背诵英文文章 How To Boost Your Confidence
- 洛谷P3373 【模板】线段树 2
- errno ETIMEDOUT npm ERR! network request to https://registry.npmjs.
- 《CSS实战案例汇总》涟漪
- 一个学习小组有5个人,每个人有三门课的考试成绩。将各个数据保存到二维数组a[5][3]中,并求全组分科的平均成绩和总平均成绩
- RecyclerView添加表格分割线
- 特征工程常用于特征提取方法——数值特征
- pandas实现对dataframe随机抽样、分层抽样
- 【沉淀】从网络中间件到搜索,从移动开发到分布式计算平台,阿里高级专家李睿博谈自己的折腾路...
- 在Elasticsearch中回测阿隆(Aroon)指標交叉交易策略
热门文章
- 让机房温度可视化:物联网下的数据中心环境运维新方式
- 【计算机网络 一 概述】
- 数字货币钱包 HD Wallet的助记词和种子的生成原理(BIP39)
- iphone safaric中将mp4保存到本地相册
- PO模式实现Appium脚本封装
- xamarin Android activity生命周期详解
- android-17手机,安卓手机好评排行:魅族17第四,小米10至尊第六,第一名意料之中...
- 任务栏WPS出现多窗口预览?下载这个注册表就对了
- Python每日一练(20230301)
- python脚本实现GNSS数据自动下载