spark 各组件研究
2016-03-02 19:13
441 查看
TaskScheduler
createTaskScheduler
case SPARK_REGEX(sparkUrl)
SparkDeploySchedulerBackend
CoarseGrainedExecutorBackend
case LaunchTask(data) (1)
scheduler.initialize(backend)
dagScheduler = new DAGScheduler(this)
taskScheduler.start()
backend.start()
提交taskset到集群运行
处理shuffle输出的lost
straggle处理机制
对处理每个TaskSet 的TaskSetManager 维护 (精读!)
RDD
runjob
dagScheduler.runJob
submitJob
eventProcessActor ! JobSubmitted
DAGScheduler
handleJobSubmitted
finalStage
submitStage(finalStage)/runLocally(job)
def submitStage(stage: Stage) {
if missing submitMissingTasks
taskSchedulerImpl.submitTasks
backend.reviveOffers()
makeOffers
launchTasks
executorActor (1)
executorHost(id, host)
else submitStage(parent)
}
1. taskset 传给底层 的TaskScheduler
2. 记录那个RDD和Stage被persist
3. 构建DAG , 决定每个任务的最佳位置
4. 重新提交shuffle输出丢失的stage
Executor
threadPool
def launchTask
runningTasks.put(taskId, tr)
threadPool.execute(tr)
createTaskScheduler
case SPARK_REGEX(sparkUrl)
SparkDeploySchedulerBackend
CoarseGrainedExecutorBackend
case LaunchTask(data) (1)
scheduler.initialize(backend)
dagScheduler = new DAGScheduler(this)
taskScheduler.start()
backend.start()
提交taskset到集群运行
处理shuffle输出的lost
straggle处理机制
对处理每个TaskSet 的TaskSetManager 维护 (精读!)
RDD
runjob
dagScheduler.runJob
submitJob
eventProcessActor ! JobSubmitted
DAGScheduler
handleJobSubmitted
finalStage
submitStage(finalStage)/runLocally(job)
def submitStage(stage: Stage) {
if missing submitMissingTasks
taskSchedulerImpl.submitTasks
backend.reviveOffers()
makeOffers
launchTasks
executorActor (1)
executorHost(id, host)
else submitStage(parent)
}
1. taskset 传给底层 的TaskScheduler
2. 记录那个RDD和Stage被persist
3. 构建DAG , 决定每个任务的最佳位置
4. 重新提交shuffle输出丢失的stage
Executor
threadPool
def launchTask
runningTasks.put(taskId, tr)
threadPool.execute(tr)
相关文章推荐
- Eclipse中如何开启Assert断言
- 考研啦 博客更新的少啦
- 安装Linux后修改grub默认启动选项
- android包名
- C# 获取mp3文件的歌曲时间长度
- bzoj 2542: [Ctsc2001]终极情报网 费用流
- CFSocket相关(未完待续)
- 基础练习 01字串
- HDU 1061 Rightmost Digit(快速幂入门)
- Windows 7 安全之根本:UAC 详解
- 在Xcode7项目集成友盟之后XIB报警告解决方法
- 有趣的Ruby-学习笔记6
- iOS文件读取方法 节选
- codeforces 622A Infinite Sequence
- 基础练习 01字串
- android SDK 下载以及更新
- android 多手指触控
- 停机测试:我停止了CRS 测试
- Java内存访问重排序笔记
- codeforces 632A A. Grandma Laura and Apples(暴力)