Spark集群的运行基本流程是怎样的?

Spark集群的运行架构

Spark是基于内存计算的大数据并行计算框架,比MapReduce计算框架具有更高的实时性,同时具有高效容错性和可伸缩性,在学习Spark操作之前,首先介绍Spark运行架构,如图所示。

在上图中,Spark应用在集群上运行时,包括了多个独立的进程,这些进程之间通过驱动程序(Driver Program)中的SparkContext对象进行协调,SparkContext对象能够与多种集群资源管理器(Cluster Manager)通信,一旦与集群资源管理器连接,Spark会为该应用在各个集群节点上申请执行器(Executor), 用 于 执 行 计 算 任 务 和 存 储 数 据。Spark将应用程序代码发送给所申请到的执行器,SparkContext对象将分割出的任务(Task)发送给各个执行器去运行。

需要注意的是,每个Spark应用程序都有其对应的多个执行器进程。执行器进程在整个应用程序生命周期内,都保持运行状态,并以多线程方式执行任务。这样做的好处是,执行器进程可以隔离每个Spark应用。从调度角度来看,每个驱动器可以独立调度本应用程序的内部任务。从执行器角度来看,不同Spark应用对应的任务将会在不同的JVM中运行。然而这样的架构也有缺点,多个Spark应用程序之间无法共享数据,除非把数据写到外部存储结构中。

Spark对底层的集群管理器一无所知,只要Spark能够申请到执行器进程,能与之通信即可。这种实现方式可以使Spark比较容易的在多种集群管理器上运行,例如Mesos、Yarn。

驱动器程序在整个生命周期内必须监听并接受其对应的各个执行器的连接请求,因此驱动器程序必须能够被所有Worker节点访问到。

因为集群上的任务是由驱动器来调度的,所以驱动器应该和Worker节点距离近一些,最好在同一个本地局域网中,如果需要远程对集群发起请求,最好还是在驱动器节点上启动RPC服务响应这些远程请求,同时把驱动器本身放在离集群Worker节点比较近的机器上。

Spark运行基本流程

Spark运行架构主要由SparkContext、Cluster Manager和Worker组成,其中Cluster Manager负责整个集群的统一资源管理,Worker节点中的Executor是应用执行的主要进程,内部含有多个Task线程以及内存空间,下图通过深入了解Spark运行基本流程。

(1)当一个Spark应用被提交时,根据提交参数在相应位置创建Driver进程,Driver进程根据配置参数信息初始化SparkContext对象,即Spark运行环境,由SparkContext负责和Cluster Manager的通信以及资源的申请、任务的分配和监控等。SparkContext启动后,创建DAG Scheduler(将DAG图分解成Stage)和Task Scheduler(提交和监控Task)两个调度模块。

(2)Driver进程根据配置参数向Cluster Manager申请资源(主要是用来执行的Executor),Cluster Manager接收到应用(Application)的注册请求后,会使用自己的资源调度算法,在Spark集群的Worker节点上,通知Worker为应用启动多个Executor。

(3)Executor创建后,会向Cluster Manager进行资源及状态的反馈,便于Cluster Manager对Executor进行状态监控,如果监控到Executor失败,则会立刻重新创建。

(4)Executor会向SparkContext反向注册申请Task。

(5)Task Scheduler将Task发送给Worker进程中的Executor运行并提供应用程序代码。

(6)当程序执行完毕后写入数据,Driver向Cluster Manager注销申请的资源。

怎样学习大数据?

要达到高薪,可以从Python入手,一步步的学习大数据开发知识。

开发入门:Linux入门 → MySQL数据库

核心基础:Hadoop

数仓技术:Hive数仓项目 

PB内存计算:Python入门 → Python进阶→ pyspark框架 → Hive+Spark项目 

这有一张大数据学习路线图,点击可放大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值