spark源码
文章平均质量分 88
beTree_fc
还行吧
展开
-
spark源码学习(四)- Executor执行task的过程
背景 一个Task任务发送到一个worker上的完成运行过程源码分析过程 位于Drive的CoarseGrainedSchedulerBackend会向work节点的CoarseGrainedExecutorBackend发送运行task的请求,于是位于worker的Task是从CoarseGrainedExecutorBackend的receive()方法开始的。 ...原创 2018-03-16 11:06:28 · 748 阅读 · 0 评论 -
Spark 源码学习 - 应用提交-2 Launch Driver
概要本篇博客是Application 应用提交详细流程中的第二部分,第一部分Submit Driver中介绍了从命令行提交任务开始,至Master注册Driver的流程。接下来Master将注册的Driver信息发送到Worker,在Worker节点启动Driver。Master发送LaunchDriver消息 Submit Driver 中最后我们讲到将driver注册到waitingDrive...转载 2018-05-07 10:49:00 · 170 阅读 · 0 评论 -
Spark 源码学习 - 应用提交-1 Submit Driver
概要本篇博客是Application 应用提交详细流程中的第一部分,介绍在Standalone模式下,从命令行使用spark-submit提交任务开始,到将Driver提交到Master的过程。详细流程spark-submit提交任务下面是Spark doc中的一个命令行提交的例子,也是我们分析任务调度的起点 注意,上图中的deploy-mode为cluster,查看spark-submit脚本...转载 2018-05-07 10:45:12 · 248 阅读 · 0 评论 -
Spark 源码学习 - Application 提交过程
目录 Application 提交过程,按照如下步骤分析:submit Driver Spark 源码学习 - 应用提交-1 Submit Driverlaunch Driver Spark 源码学习 - 应用提交-2 Launch DriverregisterApplicationlaunch Executor start CoarseGrainedExecutorBackend...转载 2018-05-07 10:40:30 · 295 阅读 · 0 评论 -
Spark源码学习(七)- Application 申请资源的过程
背景 SparkContext 在初始化的过程中,其中schudularBackEnd会向Master发送RegisterApplication的注册信息,注册成功之后,会调用schedula() 方法为application分配cores资源,并通知worker启动executor。正文1.起点 - receive() 因为Master是一个消息循环体,他的receive...原创 2018-05-07 10:35:54 · 819 阅读 · 0 评论 -
Spark (源码) 总结-杂
1.Driver 启动的过程1.spark-submit 脚本,在脚本里调用了org.apache.spark.deloy.SparkSubmit 类2.SparkSubmit.scala main方法 override def main(args: Array[String]): Unit = { val appArgs = new SparkSubmitArguments(args)...原创 2018-05-08 21:22:10 · 151 阅读 · 0 评论 -
spark源码学习(六)- Worker向Master注册过程
背景 当使用start-slaves.sh启动Worker实例的时候,启动的实际上是Worker.scala的实例,启动之后,就会向Master进行注册,注意Executor启动的时候并不会向Master注册,原因请看博文:点击打开链接,具体的Master注册过程如下文涉及到的文件: (1) Worker.scala (2) Mast...原创 2018-04-20 10:13:58 · 457 阅读 · 0 评论 -
spark源码学习(三)- TaskSchedular 提交taskset过程
背景 以前一直以为task本地行,将task分配到哪一个executor上是taskschedular做的事情,知道看了DagSchedular和TaskSchedular之后才知道,DagSchedular是负责上层调度,task具体运行在那个executor上,而TaskSchedular是决定task在ececutor上是process级别的本地行还是memory级别的本地行,因为在...原创 2018-03-30 15:44:13 · 729 阅读 · 0 评论 -
spark源码学习(二)- DAGSchedular 划分job,提交stage的过程
背景 了解dagSchedular提交job,就需要了解什么是job,什么是stage,如果我们写了一段程序,其中调用了多个spark算子,但是我们知道,实际在计算的时候,只有在遇到action算子的时候,才会触发计算操作,而这个计算操作就是一个job,所以说一次action操作就会触发提交一个job,比如collect和first操作都会触发sparkcontext的runjob...原创 2018-03-24 10:20:43 · 609 阅读 · 0 评论 -
spark源码学习(五)- SchedularBackEnd 杂谈
以spark的standalone部署方式为例,SchedularBackEnd的实现类为StandaloneSchedularBackEnd,其实例化是在TaskSchedular对象创建的时候伴随创建的,SchedularBackEnd在创建的时候,创建了StandAppClient实例,该实例在start的时候,启动了ClientEndPoint消息循环体,该循环体向master注...原创 2018-03-31 19:17:57 · 206 阅读 · 0 评论 -
spark源码学习(一)- sparkContext 初始化过程
背景 sparkcontext为spark应用程序的入口,sparksession中也集成了sparkconext对象,sparkcontext在初始化的过程中会初始化DAGSchedular、TaskSchedular、SchedularBackend和MapOutputTrackerMaster,TaskSchedular、SchedularBackend都是接口,会根据环境的...原创 2018-03-20 09:20:14 · 769 阅读 · 0 评论 -
Spark SQL 解析-转换-执行过程
目录前文正文1.概述2. 抽象语法树生成3.Unresolved Logic Plan 逻辑执行计划生成4. Analyzed Logical Plan 逻辑执行计划生成5.Optimized Logic Plan 逻辑执行计划生成6.SparkPlan 物理执行计划的生成前文 Spark SQL以及Dataset体系在Spark中具有越来越重...原创 2019-05-27 20:38:54 · 4211 阅读 · 1 评论