1、application(自己编写的应用程序),拷贝到用来提交spark应用的机器上,用spark-summit来提交这个application,在standalone模式下,会在本机客户端直接启动一个driver进程。
2、在driver里面首先干的第一件事就是构造sparkcontext,构造的时候会初始化DAGScheduler和TaskScheduler,构造完TaskScheduler后悔发送请求给Master去注册application,注册的时候Master会使用自己的资源调度算法在多个worker上给application启动多个Excutor,Excutor启动之后对TaskScheduler也就是我们的driver进行反向注册,注册完之后开始编写我们自己编写的代码,这个时候每次执行到一个action算子就会触发一个job,这个job就会给DAGScheduler,DAGScheduler会把它划分成多个stage,每一个stage创建一个TaskSet,TaskSet会提交给TaskScheduler,TaskScheduler再把这些task分解到之前反向注册过来的Excutor上去执行,Excutor接收到task会用TaskRunner来封装,然后会从自己的线程池里取出Excutor线程来执行,task在实际执行的时候会拷贝我们的代码,反序列化,然后去执行我们的task,task分两种,ShuffleMapTask和ResultTask两种,只有最后一个stage是ResultTask。每一个task是针对RDD的一个partition去并行的去执行的,这些task执行完了一批初始的RDD的算子和函数之后,会产生新的RDD,这批task只要在一个stage里面,会继续的去执行代码里面编写的第二个RDD的一些算子和函数,以此类推,这个stage执行完会进入下一个stage,所以stage和job执行完了我们恩spark程序就执行完了
spark在standalone模式下提交任务流程
Spark内核架构深度剖析.png
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Spark是什么 a)是一种通用的大数据计算框架 b)Spark Core离线计算 Spark SQL交互式查询 ...
- Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校...
- Spark应用概念 Spark应用(Application)是用户提交的应用程序。执行模式又Local、Stand...
- Spark Streaming 编程指南 概述 一个入门示例 基础概念 依赖 初始化 StreamingConte...