zoukankan      html  css  js  c++  java
  • [Spark Core] Spark Client Job 提交三级调度框架


    0. 说明

       官方文档  Job Scheduling

      Spark 调度核心组件:

    1. DagScheduler
    2. TaskScheduler
    3. BackendScheduler

     1. DagScheduler

      direct acycle graph , 有向无环图调度器

      高级调度器,面向的是 stage ,为每个 job 计算 stage 的 DAG 图,跟踪 RDD 和 stage 的输出,找出最小的调度策略来执行 job。

      该调度器提交 stage 给下层的 Task 调度器,以 taskSet 的形式进行提交。

      Spark stage 通过将 RDD 进行切割,按照 shuffle 的边界进行切割。具有窄依赖 RDD 的操作串联到每个 stage 的一个 taskset 中。

      shuffle 依赖的操作划分成两个 stage,上一个 stage 的输出供下一个 stage 进行读取。

      DAG 调度器决定运行每个 task 的首选位置。

      DAG 调度器处理因 stage 输出文件丢失导致的故障,该种情况下,之前的 stage 需要被重新提交。

      其他原因的故障由 task 调度器来处理。

      - Job
      ActiveJob,用户调用 action 方法时,job 通过 submitJob 方法进行提交。每个 job 需要多个阶段.

      - Stages
      ShuffleMapStage
      ResultStage

      - Tasks
      Spark 执行单位,需要将每个 task 发送给主机来执行。

      - Cache tracking:
      Dag 调度器能够找出哪些 RDD 被缓存了,避免 rdd 的重复计算。

      - Preferred locations
      Dag 调度器计算运行 task 的首选位置。

      - Cleanup:

      当依赖他们的运行时的 Job 完成之后清除所有数据结构,防止内存泄露。



  • 相关阅读:
    mysql导入导出sql文件
    linux 监控文件变化
    LeetCode:595.大的国家
    LeetCode:176.第二高的薪水
    LeetCode:182.查找重复的电子邮箱
    Excel学习笔记:行列转换
    通过数据分析题目实操窗口函数
    Oracle学习笔记:窗口函数
    Python学习笔记:利用爬虫自动保存图片
    电商数据分析基础指标体系(8类)
  • 原文地址:https://www.cnblogs.com/share23/p/9850312.html
Copyright © 2011-2022 走看看