引言上一小节《TaskScheduler源码与任务提交原理浅析2》介绍了Driver侧将Stage进行划分,根据Executor闲置情况分发任务,最终通过DriverActor向executorActor发送任务消息。
我们要了解Executor的执行机制首先要了解Executor在Driver侧的注册过程,这篇文章先了解一下Application和Executor的注册过程。1. Task类及其...
分类:
其他好文 时间:
2015-07-20 23:38:48
阅读次数:
174
引言上一节《Stage生成和Stage源码浅析》中,我介绍了Stage生成划分到提交Stage的过程,分析最终归结到submitStage的递归提交Stage,其中要通过submitMissingTasks函数创建task集合来实现任务的创建和分发。
在接下来的几篇文章中,我将具体介绍一下任务创建和分发的过程,为了让逻辑更加清楚,我将分成几篇文章进行介绍,好保证简明清晰,逻辑连贯,前后统一。Tas...
分类:
其他好文 时间:
2015-07-18 22:50:59
阅读次数:
208
引言上一节《TaskScheduler源码与任务提交原理浅析1》介绍了TaskScheduler的创建过程,在这一节中,我将承接《Stage生成和Stage源码浅析》中的submitMissingTasks函数继续介绍task的创建和分发工作。DAGScheduler中的submitMissingTasks函数如果一个Stage的所有的parent stage都已经计算完成或者存在于cache中,那...
分类:
其他好文 时间:
2015-07-18 22:49:09
阅读次数:
140
DAGSchedulerDAGScheduler的主要任务是基于Stage构建DAG,决定每个任务的最佳位置
记录哪个RDD或者Stage输出被物化
面向stage的调度层,为job生成以stage组成的DAG,提交TaskSet给TaskScheduler执行
重新提交shuffle输出丢失的stage
每一个Stage内,都是独立的tasks,他们共同执行同一个compu...
分类:
其他好文 时间:
2015-07-15 19:25:54
阅读次数:
1476
SparkContext的初始化SparkContext是应用启动时创建的Spark上下文对象,是进行Spark应用开发的主要接口,是Spark上层应用与底层实现的中转站(SparkContext负责给executors发送task)。
SparkContext在初始化过程中,主要涉及一下内容:
SparkEnv
DAGScheduler
TaskScheduler
Sche...
分类:
其他好文 时间:
2015-07-14 20:29:32
阅读次数:
157
不管我们使用thread,threadPool,task,还是APM异步,本质都是在使用多线程。对于新手来说,不太敢用多线程的原因,就我个人的体验来说,就是对多线程的异常捕获方式或时机缺乏了解,而一旦出现异常没有捕获,将会带来难以发现的bug,进而造成系统崩溃。而多线程本身也不是一朝一夕就能学好的,...
分类:
编程语言 时间:
2015-07-01 15:33:54
阅读次数:
257
山寨版Quartz.Net任务统一调度框架TaskScheduler在日常工作中,大家都会经常遇到Win服务,在我工作的这些年中一直在使用Quartz.Net这个任务统一调度框架,也非常好用,配置简单,但是如果多个项目组的多个服务部署到一台服务器时还是不尽如人意。这段时间很忙,也一直未更新博客了,赶...
分类:
Web程序 时间:
2015-05-27 08:34:23
阅读次数:
245
TaskScheduler在日常工作中,大家都会经常遇到Win服务,在我工作的这些年中一直在使用Quartz.Net这个任务统一调度框架,也非常好用,配置简单,但是如果多个项目组的多个服务部署到一台服务器时还是不尽如人意。这段时间很忙,也一直未更新博客了,赶上今天下班早,就研究了一下,弄了个简单版基...
分类:
Web程序 时间:
2015-05-27 00:55:41
阅读次数:
191
liveMedia项目的源代码包括四个基本的库,各种测试代码以及Media Server。四个基本的库分别是:UsageEnvironment&TaskScheduler, groupsock, liveMedia和BasicUsageEnvironment。1,基础类介绍:BasicUsageEn...
分类:
其他好文 时间:
2015-04-03 00:07:45
阅读次数:
208
Spark Runtime里的主要层次分析,梳理Runtime组件和执行流程,DAGSchedulerJob=多个stage,Stage=多个同种task, Task分为ShuffleMapTask和ResultTask,Dependency分为ShuffleDependency和NarrowDependency面向stage的切分,切分依据为宽依赖维护waiting jobs和active job...
分类:
其他好文 时间:
2015-03-20 18:37:34
阅读次数:
3996