Spark中核心组件的基本知识

1 运行架构

Spark框架的核心是一个计算引擎,采用标准的master-slave的结构,图中的Driver表示master,负责整个集群的作业任务调度,Executor则是slave,负责实际执行任务
架构图

2 核心组件

2.1 Driver

Spark驱动器节点,用于执行Spark任务中的main方法,负责实际代码的执行工作
简单理解就是Driver是驱使整个应用运行起来的程序

2.2 Executor

是工作节点中的JVM进程,负责具体任务,如果有Executor节点发生故障或者崩溃,会讲出错任务调度到其他节点执行

2.3 Master 与 Worker

Spark集群的独立部署环境中,自身实现了资源调度,即Master朱啊哟负责资源的调度和分配,并进行集群的监控,类似于Yarn环境中的RM,Worker一个Work运行与一台服务器上,类似于Yarn环境中的NM

2.4 ApplicationMaster

RM(资源)和Driver(计算)之间的解耦合靠的就是AplicationMaster

3 核心概念

3.1 Executor 与 Core

集群中运行在工作节点(Work)中的一个JVM进程,是整个集群中的专门用于计算的节点。
提交应用中,可以提供参数指定计算节点的个数,以及对应的资源。资源一般是指工作节点Executor的内存大小和使用的虚拟CPU核(Core)数目
相关的启动参数:
启动参数

3.2 并行度

多个任务同时执行,分布在不同的计算节点计算,所以可以实现多任务并行执行,这里我们将整个集群并行执行任务的数量称之为并行度

3.3 有向无环图(DAG)

大数据计算引擎我们根据使用方式一般分为四类,一类是Hadoop所承载的MapRuduce,它将计算分为两个阶段,分别为Map和Reduce,需要拆分算法,多个Job串联。支持DAG的框架为第二代计算引擎,比如Tez和Oozie,第三代则为Spark,特点是Job内部的DAG支持,以及实时计算。

4 提交流程

Yarn环境下的提交流程:
流程图
Spark应用程序提交到Yarn环境中执行的时候,两种方式:Client和Cluster。主要区别在于:Driver程序的运行节点

4.1 Yarn Client模式

Client模式将用于监控和调度的Driver模块在客户端执行,而不是Yarn中,一般用于测试
* Driver在任务提交的本地机器运行
* Driver启动后和ResourceManager通讯申请启动ApplicationMaster
* ResourceManager分配container,在合适的NodeManager上启动ApplicationMaster,负责向RexourceManager申请Executor内存
* ResourceManager接到ApplicationMaster的资源申请后会分配container,然后ApplicationMaster在资源分配指定的NodeManager上启动Executor进程
* Executor进程启动后会向Driver反向注册,Executor全部注册完成后Driver开始执行main函数
* 之后执行到Action算子时,触发一个Job,并根据宽依赖开始划分stage,每个stage生成对应的TaskSet,之后将task分发到各个Executor上执行

4.2 Yarn Cluster 模式

将用于监控和调度的Driver模式启动在Yarn集群资源中执行,一般应用于实践生产环境

  • 在YARN Cluster模式下,任务提交后会和ResourceManager通讯申请启动ApplicationMaster,
  • 随后ResourceManager分配container,在合适的NodeManager上启动ApplicationMaster,此时的ApplicationMaster就是Driver。
  • Driver启动后向ResourceManager申请Executor内存,ResourceManager接到ApplicationMaster的资源申请后会分配container,然后在合适的NodeManager上启动Executor进程
  • Executor进程启动后会向Driver反向注册,Executor全部注册完成后Driver开始执行main函数,
  • 之后执行到Action算子时,触发一个Job,并根据宽依赖开始划分stage,每个stage生成对应的TaskSet,之后将task分发到各个Executor上执行。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值