`

spark-学习笔记--24 TaskScheduler

 
阅读更多

TaskScheduler

 

 

 

 

1、stage创建 taskSet  提交给--> taskScheduler --> 分配给 executor 执行

 

2、org.apache.spark.scheduler.TaskSchedulerImpl 的 submitTasks 是入口

 

3、每个taskSet 创建一个 TaskSetManager对象--负责taskSet的监视管理

 

4、taskSchedulerImpl 的  resourceOffer 执行任务分配算法 将各个task 分配到executor上去

 

    4.1  将可用的 executor 随机打乱--目的是为了负载均衡

4.2  提交的taskSet放入到调度池    执行调度分配算法时 会从调度池取出 排好序的taskSet

4.3  本地化级别:

                 PROCESS_LOCAL 进程本地化----- RDD的 partition 和task   进入一个executor内

                 NODE_LOCAL    节点本地化----- RDD的 partition 和task   不在一个executor内  在同一个woker节点上

                 NO_PREF       无本地化

                 RACK_LOCAL    机架本地化

                 ANY           任意

 

        

尝试以最优的 本地化级别 启动 taskset

 

 

 

 

5、分配 task到 executor上之后 执行 launchTask() 方法  

 

   将分配的task发送launchTask消息到对应的executor上去   由executor启动并执行task

分享到:
评论

相关推荐

    Spark 学习之路,包含 Spark Core,Spark SQL,Spark Streaming,Spark mllib 学

    Spark 学习之路,包含 Spark Core,Spark SQL,Spark Streaming,Spark mllib 学习笔记 * [spark core学习笔记及代码 * [spark sql学习笔记及代码 * [spark streaming学习笔记及代码 Spark 消息通信 ### Spark ...

    spark-source-code-learn-note:火花学习笔记-spark source code

    《Spark源码学习笔记》是针对大数据处理框架Spark进行深入研究的资料,主要涵盖了Spark的核心设计理念、架构原理以及源码解析。本笔记旨在帮助读者理解Spark如何高效地处理大规模数据,提升数据分析和处理的能力。 ...

    Spark学习笔记三

    - **任务调度**:Spark的任务调度分为DAG Scheduler和Task Scheduler两层。DAG Scheduler将高级操作转化为Stage,Task Scheduler则负责将任务分发到worker节点上。依赖关系分为宽依赖(宽依赖意味着一个task的输出...

    spark大数据商业实战三部曲源码及资料.zip

    - TaskScheduler如何将Task分配到Executor上执行。 - Shuffle过程是如何实现的,包括MapOutputTracker和BlockManager的角色。 - RDD(弹性分布式数据集)的创建、转换和行动操作的实现细节。 四、实战应用 1. 数据...

    spark资料笔记代码

    尚硅谷的Spark资料笔记代码提供了一个深入学习和理解Spark的宝贵资源库,涵盖理论知识、实践案例以及代码示例。 一、Spark核心概念 Spark的核心在于其弹性分布式数据集(Resilient Distributed Datasets,简称RDD)...

    Spark学习笔记—Spark工作机制

    RDD的Action算子触发job的提交,提交到Spark的Job生成RDD DAG,由DAGScheduler转换为Stage DAG,每个Stage中产生相应的Task集合,TaskScheduler将任务分发到Executor执行。每个任务对应的数据块,使用用户定义的函数...

    spark-2.1.1:spark原始物走读注解解

    6. **Spark调度器**:Spark的调度器分为两层,即任务调度器(TaskScheduler)和集群调度器(ClusterManager)。任务调度器负责将任务分配到工作节点,而集群调度器负责资源分配和管理,如YARN和Mesos。 7. **故障...

    airflow笔记资料

    - **Task**:任务是DAG中的基本单元,可以是一个具体的计算或数据处理操作。 - **Operator**:操作符是任务的实现,如SQL查询、文件传输等。Airflow内置了多种操作符,同时支持自定义操作符。 - **Scheduler**:...

Global site tag (gtag.js) - Google Analytics