首页 > 代码库 > task分配算法核心原理描述

task分配算法核心原理描述

  1. 把stage生成的每个task创建一个taskset对象

  2. 双重for循环,遍历所有taskset,以及每种本地化级别

  3. 本地化级别有:

    1.process_local:进程本地化RDD的partition和task进入同一个executor中,速度最快

    2.node_local:RDD的partition和task不在一个executor上,但是在一个worker上

    3.NO_PERF:没有所谓的本地化级别

    4.RACK_LOCAL:机架本地化,至少RDD的partition和task在一个机架上

    5.任意本地化级别

  4. task优先选择最优的本地化级别

  5. 调用tasksetmanager的resourceOffer方法,去找到在这个executor上,哪些task可以启动,

  6. 放入taskset数组给指定的executor启动task

task分配算法核心原理描述