zoukankan      html  css  js  c++  java
  • Spark内核概述

    1、Spark核心组件


    1.1  Cluster Manager(Master,ResourceManager)

    Spark的集群管理器,主要负责对整个集群资源的分配与管理 Cluster Manager

    • Yarn 部署模式下为 ResourceManager
    • Mesos 部署模式下为 Mesos Master
    • Standalone 部署模式下为 Master.

    Cluster Manager 分配的资源属于一级分配, 它将各个 Worker 上的内存, CPU 等资源分配给 Application, 但并不负责对 Executor 的资源的分配.

    1.2  Worker(worker,NodeManager)

    Spark 的工作节点. 在 Yarn 部署模式下实际由 NodeManager 替代. 主要负责以下工作:

    • 将自己的内存, CPU 等资源通过注册机制告知 Cluster Manager
    • 创建 Executor
    • 将资源和任务进一步分配给 Executor
    • 同步资源信息, Executor 状态信息给 ClusterManager 等

    1.3  Driver

    Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行工作 Driver 在 Spark 作业执行时主要负责:

    • 将用户程序转化为作业(Job)
    •  在 Executor 之间调度任务(Task)
    •  跟踪 Executor 的执行情况
    •  通过 UI 展示查询运行情况

    1.4  Executor

    Spark Executor 节点是负责在 Spark 作业中运行具体任务,任务彼此之间相互独立。 Spark 应用启动时,Executor 节点被同时启动,并且始终伴随着整个 Spark 应用的生命周期而存在。 如果有 Executor 节点发生了故障或崩溃,Spark 应用也可以继续执行,会将出错节点上的任务调度到其他 Executor 节点上继续运行。 Executor 有两个核心功能:

    • 负责运行组成 Spark 应用的任务,并将结果返回给驱动器(Driver)
    • 它们通过自身的块管理器(Block Manager)为用户程序中要求缓存的 RDD 提供内存式存储。RDD 是直接缓存在 Executor 进程内的,因此任务可以在运行时充分利用缓存数据加速运算。

    1.5  Application

    用户使用 Spark 提供的 API 编写的应用程序

    • Application 通过 Spark API 将进行 RDD 的转换和 DAG 的构建, 并通过 Driver 将 Application 注册到 Cluster Manager.
    • Cluster Manager 将会根据 Application 的资源需求, 通过一级分配将 Executor, 内存, CPU 等资源分配给Application.
    • Driver 通过二级分配将 Executor 等资源分配给每一个任务, Application 最后通过 Driver 告诉 Executor 运行任务

    2、Spark通用运行流程概述


    Spark 通用运行流程,不论 Spark 以何种模式进行部署,都是以如下核心步骤进行工作的:

    1. 任务提交后,都会先启动Driver程序
    2. 随后Driver向集群管理器注册应用程序
    3. 集群管理器根据此任务的配置文件分配Executor并启动该应用程序
    4. 当Driver所需的资源全部满足后,Driver开始执行main函数,Spark转换为懒执行,当执行到Action算子时开始反向推算,根据宽依赖进行Stage的划分,随后每一个Stage对应一个TaskSet,TaskSet中有多个Task
    5. 根据本地化原则,Task会被分发到指定的Executor去执行,在任务执行的过程中,Executor也会不断与Driver进行通信,报告任务运行情况
  • 相关阅读:
    Iconfont在Vue中的使用
    yarn安装依赖报错
    动漫
    伤痛的魅力。绷带男子特辑
    记STM32F103C8T6+STLINK下载器在Keil中的设置
    JQuery浮动对象插件
    树莓派RTL8723BU_LINUX驱动安装
    python虚拟环境相关设置备忘
    解决树莓派控制台命令行乱码
    python模块wifi使用小记
  • 原文地址:https://www.cnblogs.com/hyunbar/p/12079449.html
Copyright © 2011-2022 走看看