美文网首页Spark全解专辑
Spark核心概念图解

Spark核心概念图解

作者: SunnyRivers | 来源:发表于2018-12-13 23:53 被阅读0次

    Spark运行架构图

    重要概念

    Client

    客户端进程,负责提交作业

    Application

    提交一个作业就是一个Application,一个Application只有一个SparkContext

    Master

    (图中的Cluster Manager),就像Hadoop中有NameNode和DataNode一样,Spark有Master和Worker。Master是集群的领导者,负责管理集群的资源,接收Client提交的作业,以及向Worker发送命令。

    Worker

    (图中的Woker Node),集群中的Woker,执行Master发送的命令,来具体分配资源,并在这些资源中执行任务

    Driver

    一个Spark作业运行时会启动一个Driver进程,也是作业的主进程,负责作业的解析、生成Stage,并调度Task到Executor上

    Executor

    真正执行作业的地方。Executor分布在集群的Worker上,每个Executor接收Driver命令来加载和运行Task,一个Executor可以执行一个到多个Task

    SparkContext

    是程序运行调度的核心,由高层调度器DAGScheduler划分程序的每个阶段,底层调度器TaskScheduler划分每个阶段的具体任务。SchedulerBankend管理整个集群中为正在运行的程序分配的计算资源Executor。

    DAGScheduler

    负责高层调度,划分Stage并生成程序运行的有向无环图

    TaskScheduler

    负责具体Stage内部的底层调度,具体Task的调度、容错等

    Job

    (正在执行的叫ActiveJob)是Top-level的工作单元,每个Action算子都会触发一次Job,一个Job可能包含一个或多个Stage

    Stage

    是用来计算中间结果的Tasksets。Tasksets中的Task逻辑对于同一RDD内的不同Partition都一样。Stage在Shuffle的地方产生,此时下一个Stage要用到上一个Stage的全部数据,所以要等上一个Stage全部执行完才能开始。Stage有两种:ShuffleMapStage和ResultStage,除了最后一个Stage是ResultStage外,其他的Stage都是ShuffleMapStage。ShuffleMapStage会产生中间结果,以文件的方式保存在集群里,Stage经常被不同的Job共享,前提是这些Job重用了同一个RDD

    Task

    任务执行的工作单位,每个Task会被发送到一个节点上,每个Task对应RDD的一个Partition

    Taskset

    划分的Stage会转换成一组相关联的任务集

    RDD

    (Resilient Distributed Dataset)弹性分布数据集。是不可变的、Lazy级别的、粗粒度的(数据集级别的而不是单个数据级别的)数据集合,包含一个或多个数据分片,即Partition

    DAG

    (Directed Acyclic Graph)有向无环图。Spark实现了DAG计算模型,DAG计算模型是指将一个计算任务按照计算规则分解为若干子任务,这些子任务之间根据逻辑关系构建成有向无环图

    两种级别算子

    Transformation和Action。Transformation算子会由DAGScheduler划分到pipeline中,是Lazy级别的不会触发任务的执行;Action算子会触发Job来执行pipeline中的运算

    相关文章

      网友评论

        本文标题:Spark核心概念图解

        本文链接:https://www.haomeiwen.com/subject/apnfwftx.html