zoukankan      html  css  js  c++  java
  • spark原理-物理执行图

    物理执行图表示一组rdd如何放在集群中运行。

    当触发Action执行的时候,这一组相互依赖的rdd要被处理,所以要转化为可运行的物理执行图,调度在集群中执行。

    因为大部分的rdd并不是真正的存储数据,只是数据从中流转,所以不能直接在集群中运行rdd,需要将rdd转换成stage和task,从而运行task。

    由图可得: 

    1.在同一个stage中所有rdd对应分区,在同一个task中执行。

    2.stage划分是由shuffle操作断开的。

    1.谁执行具体任务

    Executor是执行rdd计算任务的容器,也就是一个进程,负责运行task,具体计算任务的线程叫做task。

    2.task如何设计

    1.每个rdd的每个分区都对应一个task。

    2.分阶段,一个task计算所有rdd中对应分区。

    3.物理执行图基本概念

    Application:编写的Spark的应用程序。

    Driver:Spark中的Driver负责运行上述Application的main函数并创建SparkContext,创建SparkContext的目的是为了准备Spark应用程序的运行环境,在Spark中有SparkContext负责与ClusterManager通信,进行资源申请、任务的分配和监控当Executor部分运行完毕后,Driver同时负责将SparkContext关闭。

    Executor:进程——运行在工作节点上,负责运行Task。

    DAG: 有向无环图。用户提交的应用程序,Spark底层会根据宽依赖、窄依赖自动生成DAG。反应出RDD之间的依赖关系。

    DAGScheduler: DAGscheduler是一个由SparkContext创建,运行在driver上的组件,根据每个job中rdd依赖关系生成DAG。将stage中生成的taskset提交给TaskScheduler。TaskScheduler负责taskset调度,在executor执行taskset。

    得到结果再发送给driver。

    job:用户提交的作业。spark程序放在集群中运行,job是最大单位,将job拆分为stage和task去调度执行,一个job就是一个spark程序从 读取 - 计算 - 运行的过程。 spark任务调用一次Action算子生成一个job。

     一个spark程序可能有多个job,job之间是串行的,第二个job需要等到第一个job执行结束才会执行。

    Stage:是Job的基本调用单元,Job根据宽窄依赖划分不同的Stage,一个job包含一个或多个stage,一个Stage中包含一个或者多个同种Task。

    task:Executor的工作单元。一个Stage内只会存在同一种Task,Task数量与Stage的Partition数量保持一致(运行的Task数量可能会大于Partition数量)。

    一个Application由一个Driver和若干个Job构成,一个Job由多个Stage构成,一个Stage由多个没有Shuffle关系的Task组成。

    4.物理执行图运行在集群中

    1.先把spark程序提交给driver,driver负责运行spark程序的main方法,运行完后生成逻辑执行图,然后把逻辑执行图调用Action。

    2.DAGScheduler会生成stage并划分成不同阶段,每个阶段对应一个TaskSet。

    3.DAGScheduler请求TaskScheduler调度TaskSet,TaskScheduler会询问集群有多少资源,资源返回给TaskScheduler。

    4.TaskScheduler把stage调度到executor中执行taskSet,得到结果再发送给driver。

  • 相关阅读:
    第一部分 类的初始
    第一部分 数据内存存储、常预定义值类型、用户自定义值类型、预定义引用类型
    第一部分 变量、数据类型
    第一部分 程序结分析、控制台输入输出
    第一部分 代码组织概念,集成开发环境(IDE)
    第一部分 记事本搞定第一个C#程序和编译过程剖析
    jQuery函数
    leaflet入门(五)API翻译(下)
    leaflet入门(四)API翻译(上)
    禁止浏览器缓存js
  • 原文地址:https://www.cnblogs.com/chong-zuo3322/p/13127334.html
Copyright © 2011-2022 走看看