主页 > 新闻资讯 > Spark架构图:Spark集群架构解析

Spark架构图:Spark集群架构解析

作者:张老师 浏览次数: 2020-02-24 18:38
Spark框架作为第二代大数据计算引擎的代表,对比第一代框架Hadoop,其主要的优势来自于计算性能上的提升。面对实时大数据计算的需求涌现,Spark的出现,刚刚好解决了燃眉之急。下面,我们就来看看Spark架构图,对Spark集群架构做一个简单的解析。

Spark集群架构,分为四个层次,数据存储层、资源管理层、计算引擎层以及应用层。集群运行,涉及到架构里面的多个节点联动。

Spark架构图

资源管理层,主要负责资源调度和分配,支持三种类型资源调度管理方式:

Standalone:Spark原生的资源管理,由Master负责资源的分配;

Apache Mesos:与Hadoop MapReduce兼容性良好的一种资源调度框架;

Hadoop Yarn:主要是指的Yarn中的ResourceManager;

cluster模式下,spark application提交到cluster manager,cluster manager(比如master)负责在集群中某个节点上,启动driver进程,用于生产环境。

通常情况下driver和worker在同一个网络中是最好的,而client很可能就是driver worker分开布置,这样网络通信很耗时,cluster没有这样的问题。

计算引擎层,则主要负责计算任务的执行,这也是Spark的核心部分:

Application由一个Driver程序和一组运行于Spark集群上的Executor组成,是用户编写的Spark程序,通过一个有main方法的类执行,完成一个计算任务的处理。

Driver,运行main方法的Java虚拟机进程负责,监听spark application的executor进程发来的通信和连接,将工程jar发送到所有的executor进程中,driver调度task给executor执行。Driver调度task给executor执行,所以driver最好和spark集群在一片网络内,便以通信。

Executor,运行在worker节点上,负责执行作业的任务,并将数据保存在内存或磁盘中。每个spark application,都有属于自己的executor进程,spark application不会共享一个executor进程。executor在整个spark application运行的生命周期内,executor可以动态增加/释放。executor使用多线程运行SparkContext分配过来的task,来一批task就执行一批。

SparkContext是用户操作spark的入口,负责连接Spark集群,创建RDD,累积量和广播量等。Driver program通过SparkContext连接到集群管理器来实现对集群中任务的控制,每个JVM只有一个SparkContext,一台服务器可以启动多个JVM。

以上就是关于Spark架构图,Spark集群架构解析的分享内容了,了解了Spark的集群架构之后,我们可以更加清楚地知道,Spark任务如何运行以及为什么能够实现更快地完成计算任务。成都加米谷大数据,专业大数据培训机构,大数据开发2020春季班正在招生中,详情可联系客服了解!
热点排行
推荐文章
立即申请>>