大数跨境
0
0

Spark 架构和组件的简要概述

Spark 架构和组件的简要概述 OceanMind海睿思
2016-07-12
1
导读:一 Spark各个组件介绍先介绍几个基本概念:1、Driver运行Application的main()函数并
Spark各个组件介绍

先介绍几个基本概念:

1、Driver

运行Application的main()函数并且创建SparkContext的程序。


2、Master

Master是个进程主要负责资源的调度和分配,还有集群监控等职责。


3、Worker

Worker是个进程,主要职责有两个,一个是用自己的内存存储一个或多个RDD Partition,另一个启动Executor进程以及task线程,对RDD Partition进行处理和计算。


4、Executor

Executor进程主要负责对RDDPartition进行处理和计算任务,并且负责将数据存储在硬盘或者内存中。


5、Task

Task 是线程,它属于Executor的执行单元。


6、Job

  Job包含多个task的并行计算,spark中的一个action对应一个job,如collect、count、saveAsTextFile ,用户提交的Job会提交给DAGScheduler,Job会被分解成StageDAG。


7、Stage

   每个Job会被拆分成多组任务,每组任务被称为一个Stage,称为TaskSet。


8、RDD Partition

RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据, RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。


Spark 应用程序

资源申请过程


Driver进程启动后,执行应用程序,会做一些初始化的操作。在这个过程中,就会发送请求到Master上,进行Spark程序的注册,告知Master有应用程序要运行,Master接收到了Spark应用程序申请之后,会发送请求给Worker,进行资源的调度和分配,Worker接收到Master请求后会做两件事,一个是分配内存存储RDD Partition,另一个是启动Executor进程以及Task线程,最后Executor会向Driver进行反注册,这样Driver就知道哪些Executor能为该应用程序提供服务



图表 1 Driver向Master申请资源


Spark 应用程序

资源执行过程

Spark应用程序进行各种Transformation的计算,最后通过Action触发job。提交之后首先通过SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler进行解析,解析时是以Shuffle为边界,反向解析,构建Stage,Stage之间也有依赖关系。这个过程就是对DAG图进行解析划分Stage,并且计算出各个Stage之间的依赖关系。然后将一个个TaskSet提交给底层调度器,在spark中是提交给TaskScheduler处理,生成TaskSet manager,最后提交给Executor进行计算,Executor多线程计算,计算完反馈给TaskSetmanager,再反馈给TaskScheduler,然后再反馈回DAGScheduler。全部运行完之后写入数据。


图表 2  Driver进程处理计算任务过程 

【声明】内容源于网络
0
0
OceanMind海睿思
中新赛克旗下的大数据产品品牌,致力于成为“您身边的数字化转型专家”。
内容 292
粉丝 0
OceanMind海睿思 中新赛克旗下的大数据产品品牌,致力于成为“您身边的数字化转型专家”。
总阅读78
粉丝0
内容292