图解Spark内核架构
来源:互联网 发布:js和php的区别 编辑:程序博客网 时间:2024/06/05 06:52
1. 假设现在有一台提交spark应用的机器,自己编写的应用程序在spark中称为Application,通过spark-submit结合shell提交Application。
2. 提交之后会在本地客户端启动一个进程叫做Driver,spark-submit使用standalone模式提交,会通过反射的方式,创建和构造一个DriverActor进程。
3. Driver进程会先构造SparkConf,再构造SparkContext。
4. SparkContext在初始化时,做的最重要的两件事就是构造DAGScheduler和TaskScheduler。
5. TaskScheduler会通过它对应的一个后台进程,去连接Master,然后向Master注册Application。
6. Master接收到Application注册的请求之后,会使用自己的资源调度算法,在Spark集群的Worker上,为这个Application启动多个Executor(进程)。
7. Executor启动之后,会自己反向注册到TaskScheduler上去。
8 所有的Executor都反向注册到Driver之后,Driver结束SparkContext初始化,会继续执行编写的代码。
9. 每执行一个action,就会创建一个job。
10. job会提交给DAGScheduler,DAGScheduler会将job划分为多个stage(使用stage算法),然后每个stage会创建一个TaskSet。
11. TaskScheduler会把taskset里面每一个task提交到Executor上执行(使用task分配算法)。
12. Executor每接收到一个task,都会用TaskRunner接收task,然后从线程池里取出一个线程执行这个task。
13. TaskRunner将编写的代码,也就是要执行的算子以及函数拷贝、反序列化,然后执行Task。
14. Task有两种,ShuffleMapTask和ResultTask,之前的stage,都是ShuffleMapTask。
15. 所以,最后整个spark应用程序的执行,就是stage分批次作为taskset提交到Executor执行,每个task针对RDD的一个Partition,执行定义的算子和函数。依次类推,直到所有操作执行完为止。
- 图解Spark内核架构
- Spark内核架构解密
- spark内核架构
- Spark内核架构
- Spark内核架构
- Spark内核架构
- Spark内核架构
- spark内核架构
- Spark内核架构剖析
- Spark内核架构
- Spark内核系列(一)Spark内核架构
- Spark内核深度剖析之内核架构
- Spark学习笔记(22)Spark Streaming架构源码图解
- Spark内核源码深度剖析:Spark内核架构深度剖析
- Spark2.2 内核架构深层剖析图解
- 第13课Spark内核架构解密
- 第13课 Spark内核架构解密
- spark(5)-spark内核架构(course13)
- 【MySQL-数据备份】
- scala 代码示例
- Java集合之Properties
- Java实现ArrayList去重复值
- html5第七课时,辽宁陆海定位
- 图解Spark内核架构
- html5第七课时,固定定位
- CCF NOI1040 除法游戏
- A(1886): Phone List
- nginx 基础配置
- html5第七课时,div居中
- 如何使用PHP构建一个高性能的弹幕后端服务
- FZU
- 利用dfs和bfs的回溯,湖南省第八届省赛Collection Coins