五:spark作业调度与执行
2018-01-06 19:02
246 查看
一:spark调度管理的基本概念
1. Application
基于Spark的应用程序,由一个或多个作业组成。每个应用程序的执行涉及Driver program和集群上的Executors两部分。
2.Job
Job即作业,是包含多个Task的并行计算,其与Appliction中的执行操作一一对应,也就是说Application每提交一个执行操作Spark就对应生成一个Job。
3.Task
Task即任务,是被送到Executor执行的工作单元。RDD中的每个分区都对应相应的Task,而每个Task对应于Executor中的一个线程。
4.Executor
是worker上某个Application启动的一个进程,该进程负责执行任务并且负责将数据存储在内存或磁盘中。一个worker节点上可能有多个Executor,但是每个Executor中仅执行一个Application对应的任务。也就是说,不同的Application通过Executor无法共享数据。
5.Cluster Manager
是在集群上获取资源的外部服务。在执行Spark Application过程中,集群上的资源如何调度,由Cluster Manager进行管理。
二:作业调度流程
1.一个spark作业被逐步拆分成更小的调度单元,最终以任务的形式按照一定的逻辑依赖关系依次提交执行,并返回结果。
2.在作业调度的相关类中,最重要的就是DAGScheduler和TaskScheduler。DAGScheduler是基于DAG的调度类,负责将作业拆分成不同的阶段具有依赖关系的多批任务组,在逻辑上实现对Spark作业的调度。TaskScheduler则根据不同的任务需求,负责调度和管理每个任务所需的资源,在物理层面实现对Spark作业的执行。
首先在RDD的转化过程中,父RDD与子RDD之间形成依赖关系,同时也确定了DAG;然后DAG图由DAGScheduler将DAG中划分成若个stage(stage中包含若干个RDD,这些RDD之间全部都是在依赖的关系)。DAGScheduler是面向stage的调度器,其调度的单位是stage。每个stage对应一个Taskset,因此DAGScheduler是以Taskset的形式向TaskScheduler提交每个stage(其中一个TaskScheduler只为yigesparkContext服务),这些Task被分布到集群节点上去运算。
1. Application
基于Spark的应用程序,由一个或多个作业组成。每个应用程序的执行涉及Driver program和集群上的Executors两部分。
2.Job
Job即作业,是包含多个Task的并行计算,其与Appliction中的执行操作一一对应,也就是说Application每提交一个执行操作Spark就对应生成一个Job。
3.Task
Task即任务,是被送到Executor执行的工作单元。RDD中的每个分区都对应相应的Task,而每个Task对应于Executor中的一个线程。
4.Executor
是worker上某个Application启动的一个进程,该进程负责执行任务并且负责将数据存储在内存或磁盘中。一个worker节点上可能有多个Executor,但是每个Executor中仅执行一个Application对应的任务。也就是说,不同的Application通过Executor无法共享数据。
5.Cluster Manager
是在集群上获取资源的外部服务。在执行Spark Application过程中,集群上的资源如何调度,由Cluster Manager进行管理。
二:作业调度流程
1.一个spark作业被逐步拆分成更小的调度单元,最终以任务的形式按照一定的逻辑依赖关系依次提交执行,并返回结果。
2.在作业调度的相关类中,最重要的就是DAGScheduler和TaskScheduler。DAGScheduler是基于DAG的调度类,负责将作业拆分成不同的阶段具有依赖关系的多批任务组,在逻辑上实现对Spark作业的调度。TaskScheduler则根据不同的任务需求,负责调度和管理每个任务所需的资源,在物理层面实现对Spark作业的执行。
首先在RDD的转化过程中,父RDD与子RDD之间形成依赖关系,同时也确定了DAG;然后DAG图由DAGScheduler将DAG中划分成若个stage(stage中包含若干个RDD,这些RDD之间全部都是在依赖的关系)。DAGScheduler是面向stage的调度器,其调度的单位是stage。每个stage对应一个Taskset,因此DAGScheduler是以Taskset的形式向TaskScheduler提交每个stage(其中一个TaskScheduler只为yigesparkContext服务),这些Task被分布到集群节点上去运算。
相关文章推荐
- Spark作业执行原理
- Spark架构与作业执行流程简介
- Spark作业执行原理
- spark源码之Job执行(2)任务调度taskscheduler
- 提交spark作业:如何在java中执行shell脚本
- Spark 作业调度
- Spark 作业调度
- Hadoop概念学习系列之为什么hadoop/spark执行作业时,输出路径必须要不存在?(三十九)
- hadoop2 作业执行过程之yarn调度执行
- spark作业调度
- Spark 作业调度
- Spark 作业调度
- Spark作业调度
- sql 2000 作业调度(定时执行存储过程)
- Spark核心作业调度和任务调度之DAGScheduler源码
- Spark作业调度中stage的划分
- 作业执行时间对任务调度的影响
- sql 2000 作业调度(定时执行存储过程)
- Spark 作业调度
- Spark Streaming 作业调度流程