• Spark运行原理解析


    前言:

    Spark Application的运行架构由两部分组成:driver program(SparkContext)和executor。Spark Application一般都是在集群中运行,比如Spark Standalone,YARN,mesos,这些集群给spark Application提供了计算资源和这些资源管理,这些资源既可以给executor运行,也可以给driver program运行。根据Spark Application的driver program是否在资源集群中运行,Spark

    Application的运行方式又可以分为Cluster模式和client模式。spark1.0.0提供了一个Spark Application的部署工具bin/spark-submit。

    1.1基本术语

    关于Application中的几个概念如下图所示:

        Application:基于Spark的用户程序,包含了一个driver program和集群中多个的

              executor

        Driver progaram:运行Application的main()函数并且创建SparkContext,通常用SparkContext代表Driver Program。

        Cluster Manager:在集群上获取资源的外部服务(例如:Standalone,Mesos,Yarn)

               Worker Node:集群中任何可以运行Application代码的节点

        Executor:是为某Application运行在worker node上的一个进程,该进程负责运行

    Task,并且负责将数据存在内存或者磁盘上。每个Application都有个字独立的executors。

    Task: 被送到某个executor上的工作单元

    Job: 包含多个Task组成的并行计算,往往由Spark action催生,该术语可以经常在日志中看到。

    Stage:
    每个Job会被拆分很多组task,每组任务被称为Stage,也可称TaskSet,该术语可以经常在日志中看到。

    RDD:Spark的基本计算单元,可以通过一系列算子进行操作(主要有Transformation和Action操作),详情见RDD
    细解、Spark1.0.0编程模型。

    DAG Scheduler:根据Job构建基于Stage的DAG,并提交Stage给TaskScheduler,详见DAG
    Scheduler 细解。

    TaskScheduler:将Taskset提交给worker(集群)运行并回报结果,详见TaskScheduler
    细解。
    1.2Spark运行模式概述

    Spark运行模式多种多样,在单机上可以以本地模式运行,也可以以伪分布式模式运行。

    而当以分布式的方式在cluster集群中运行时,底层的资源管理器可以使用Spark自带的standalone模式,也可以使用Yarn或者Mesos模式。

    Spark的运行模式主要取决于传递给SparkContext的deploy-mode和Master变量的值,个别模式还需要辅助的程序接口来配合使用。目前Master有local,yarn-client,yarn-client,spark(standalone),mesos模式,而deploy-mode必须是client(默认方式)或cluster中的一种。

    1.3Spark的基本工作流程

    Spark的Application在运行时,首先在Driver程序中创建SparkContext,将其作为调度的总入口,在其初始化的过程中会分别创建DAGSchedule(进行Stage调度)和TaskSchedule(进行Task调度)两个模块。DAGSchedule模块是基于Stage的调度模块,它为每个Spark job计算具有依赖关系的多个Stage任务阶段然后将每个Stage划分为一组具体的任务以TaskSet的

    形式提交给底层的TaskSchedule模块来具体执行。TaskSchedule负责具体启动任务,监控和汇报任务的运行情况。而任务运行所需的资源需要向Cluster Manager申请。

      

  • 相关阅读:
    关于IOS6屏幕旋转的问题
    学习备忘录
    关于多种手势问题
    关于 IOS中 绘制图形的问题
    爱的意义
    IOS支付SDK
    IOS开发特别备注
    ios相关教程
    iOS7光标问题
    收藏网站
  • 原文地址:https://www.cnblogs.com/jingblogs/p/5529681.html
Copyright © 2020-2023  润新知