文档章节

spark内核揭秘-04-spark任务调度系统个人理解

stark_summer
 stark_summer
发布于 2015/01/18 21:25
字数 511
阅读 2366
收藏 47

spark的任务调度系统如下所示:

从上图中可以看出来由RDD Objects产生DAG,然后进入了DAGScheduler阶段,DAGScheduler是面向state的高层次的调度器,DAGScheduler把DAG拆分成很多的tasks,每组的tasks都是一个state,每当遇到shuffle就会产生新的state,可以看出上图一共有三个state;DAGScheduler需要记录那些RDD被存入磁盘等物化动作,同时需寻找task的最优化调度,例如数据本地性等;DAGScheduler还要监视因为shuffle输出导致的失败,如果发生这种失败,可能就需要重新提交该state:


DAGScheduler划分state后以TaskSet为单位把任务,把任务交给底层次的可插拔的调度器TaskScheduler来处理:


可以看出TaskScheduler是一个trait,在目前spark系统中TaskScheduler的实现类只有一个TaskSchedulerImpl:


一个TaskScheduler只为一个SparkContext实例服务,TaskScheduler接受来自DAGScheduler发送过来的分组的任务,DAGScheduler给TaskScheduler发送任务的时候是以Stage为单位来提交的,TaskScheduler收到任务后负责把任务分发到集群中Worker的Executor中去运行,如果某个task运行失败,TaskScheduler要负责重试;另外如果TaskScheduler发现某个Task一直未运行完,就可能启动同样的任务运行同一个Task,那个任务先运行完就用哪个任务的结果。


TaskScheduler发送的任务交给了Worker上的Executor以多线程的方式运行,每一个线程负责一个任务:





其中的存储系统的管理是BlockManager来负责的:


看一下TaskSet的源码:


从TaskSet源码的第一个参数tasks就可以看出其是一个Task的数组,包含一组Task。

© 著作权归作者所有

共有 人打赏支持
stark_summer
粉丝 60
博文 75
码字总数 51050
作品 0
朝阳
CEO
加载中

评论(2)

stark_summer
stark_summer

引用来自“寒风剑海”的评论

其实,TaskScheduler还有两个实现类,不过都是继承了TaskScheculerImpl类,分别是YarnClusterScheduler和YarnClientClusterScheduler,在yarn文件夹下
恩 确实,刚才重新了下代码,果真的,记住了,谢谢O(∩_∩)O
寒风剑海
寒风剑海
其实,TaskScheduler还有两个实现类,不过都是继承了TaskScheculerImpl类,分别是YarnClusterScheduler和YarnClientClusterScheduler,在yarn文件夹下
教你如何成为Spark大数据高手

Spark目前被越来越多的企业使用,和Hadoop一样,Spark也是以作业的形式向集群提交任务,那么如何成为Spark大数据高手?下面就来个深度教程。 分享之前我还是要推荐下我自己创建的大数据学习交...

风火数据
05/20
0
0
Spark2.1.0之模块设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/beliefer/article/details/80386736 在阅读本文之前,读者最好已经阅读了《Spark2.1.0之初识Spark》和《Spark...

泰山不老生
06/05
0
0
Spark2.1.0之基础知识

在阅读本文之前,读者最好已经阅读了《Spark2.1.0之初识Spark》一文,本文将对Spark的基础知识进行介绍。但在此之前,读者先跟随本人来一次简单的时光穿梭,最后还将对Java与Scala在语言上进...

beliefer
05/24
0
0
[Kafka与Spark集成系列四] Spark运行结构

版权声明:本文为博主原创文章,未经博主朱小厮允许不得转载。 https://blog.csdn.net/u013256816/article/details/82082146 在分布式环境下,Spark集群采用的是主从架构。如下图所示,在一个...

朱小厮
08/26
0
0
Spark成为大数据高手进阶步骤

什么是Spark Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapRedu...

MoksMo
2015/11/05
0
1

没有更多内容

加载失败,请刷新页面

加载更多

如何在Windows平台用Java代码暴力破解WIFI密码

由于新搬的地方没有覆盖移动的宽带,最近手头又紧。所以暂时先没安宽带,但是一天用流量,也撑不住啊。看着流量哗啦啦的溜走。住的地方在6楼,然后房子是底商的格局,于是就动起了蹭网的小心...

耒耒耒耒耒
刚刚
0
0
兄弟连区块链教程以太坊源码分析core-vm-stack-memory源码分析

vm使用了stack.go里面的对象Stack来作为虚拟机的堆栈。memory代表了虚拟机里面使用的内存对象。 stack 比较简单,就是用1024个big.Int的定长数组来作为堆栈的存储。 构造 // stack is an...

兄弟连区块链入门教程
2分钟前
0
0
zabbix报错cannot set resource limit: [13] Permission denied解决方法

zabbix报错cannot set resource limit: [13] Permission denied解决方法 zabbix-server启动时出现以下错误: 1 2 3 4 2912:20180326:050930.023 using configuration file: /etc/zabbix/zab......

linjin200
5分钟前
0
0
kotlin使用spring mvc(四)

使用Interceptor拦截器 Filter 是在 Servlet 规范中定义的,是 Servlet 容器支持的。而拦截器是在 Spring容器内的,是Spring框架支持的。Filter在只在 Servlet 前后起作用。Filters 通常将 ...

weidedong
12分钟前
0
0
DAC测试链(TestNet)记录

20181022 DAC测试链(TestNet)记录 1、DAC 文档 https://github.com/linkdt-tech/DAC/blob/master/doc/createAsset.md 2、按照文档安装后,进入 dacd 目录 cd /opt/cd dacd_testnet/** 直......

wwzzhh166
16分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部