zoukankan      html  css  js  c++  java
  • spark运行机制

    image-20211031202232218

    1. 构建DAG(Driver 端完成)

      使用算子操作 RDD 进行各种 Transformation 操作,最后通过 Action 操作触发 Spark 作业运行。提交之后 Spark 会根据转换过程所产生的 RDD 之间的依赖关系构建有向无环图

    2. DAG 切割(Driver 端完成)

      DAG 切割主要根据 RDD 的依赖是否为宽窄依赖来解决切割节点,当遇到宽依赖就将任务划分为一个新的调度阶段(Stage)。每个 Stage 中包含一个或多个 Task。这些 Task 将形成任务集(TaskSet),提交给底层调度器进行调度运行。

    3. 任务调度(Driver 端完成)

      每一个 Spark 任务调度器只为一个 SparkContext 实例服务。当任务调度器收到任务集后负责把任务集以 Task 任务的形式分发至 Worker 节点的 Executor 进程中执行,如果某个任务失败,任务调度器负责重新分配该任务的计算。

    4. 执行任务(Worker 的 Executor 执行)

      当 Executor 收到发送过来的任务后,将以多线程(会再启动 Executor 的时候就初始化好一个线程池)的方式执行任务计算,每个线程负责一个任务,任务结束后会根据任务的类型选择相应的返回方式将结果返回给任务调度器

  • 相关阅读:
    图论
    后缀数组专题
    AC自动机
    线段树·二
    nginx实现负载均衡
    关于mysql binlog二进制
    linux下每次git clone无需多次输入账号密码
    Centos7 yum安装 MySQL5.7.25
    docker基本操作和部署
    composer update 或者 composer install提示killed解决办法
  • 原文地址:https://www.cnblogs.com/starzy/p/15490911.html
Copyright © 2011-2022 走看看