运维

spark架构与作业执行流程

2017-05-18  本文已影响62人  一路向北__

spark相关术语

  1. Application
    指的是用户编写的Spark应用程序,包含了一个Driver 功能的代码和分布在集群中多个节点上运行的Executor代码;

  2. Driver
    Spark中的Driver即运行上述Application的main()函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Spark应用程序的运行环境。在Spark中由SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等;当Executor部分运行完毕后,Driver负责将SparkContext关闭。通常用SparkContext代表Driver;

  3. Executor
    Application运行在Worker 节点上的一个进程,该进程负责运行Task,并且负责将数据存在内存或者磁盘上,每个Application都有各自独立的一批Executor。

  4. Cluster Manager
    指的是在集群上获取资源的外部服务,目前有3种方式

  5. Worker
    集群中任何可以运行Application代码的节点。

  6. Job
    包含多个Task组成的并行计算,往往由Spark Action催生,一个JOB包含多个RDD及作用于相应RDD上的各种Operation;

  7. stage
    每个Job会被拆分很多组Task,每组任务被称为Stage,也可称TaskSet,一个作业分为多个阶段;

  8. Task
    被送到某个Executor上的工作任务;


    111609254102564.gif

Spark集群模式架构

集群架构图
上图中,Spark集群Cluster Manager目前支持如下三种模式:
1.Standalone模式
Standalone模式是Spark内部默认实现的一种集群管理模式,这种模式是通过集群中的Master来统一管理资源,而与Master进行资源请求协商的是Driver内部的StandaloneSchedulerBackend(实际上是其内部的StandaloneAppClient真正与Master通信),后面会详细说明。
2.YARN模式
YARN模式下,可以将资源的管理统一交给YARN集群的ResourceManager去管理,选择这种模式,可以更大限度的适应企业内部已有的技术栈,如果企业内部已经在使用Hadoop技术构建大数据处理平台。
3.Mesos模式
随着Apache Mesos的不断成熟,一些企业已经在尝试使用Mesos构建数据中心的操作系统(DCOS),Spark构建在Mesos之上,能够支持细粒度、粗粒度的资源调度策略(Mesos的优势),也可以更好地适应企业内部已有技术栈。

1.基于standalone模式下的spark架构

1.1 角色介绍
1.2作业相关的名词
1.3 提交作业的方式

提交作业有两种方式分别是:

  1. Driver运行在Worker上(作业的master,负责作业的解析、生成stage并调度task到,包含DAGScheduler)
  2. Driver运行在client上 。
方式1:Driver运行在Worker上
111334483727486.png
方式2:Driver运行在Client上
111334487788428.png
上一篇 下一篇

猜你喜欢

热点阅读