文章目录
- 前言
- 一、Spark集群角色介绍
- (一)Spark集群简介
- (二)集群角色介绍
- 总结
前言
#博学谷IT学习技术支持#
上篇文章主要介绍了Spark的运行流程,可以通过链接复习以加深印象:Spark运行流程,本篇文章着重介绍Spark的集群角色,以了解Spark集群各个角色的作用,从而进一步了解Spark集群。
一、Spark集群角色介绍
(一)Spark集群简介
Spark集群是一个分布式主从高可用架构,Spark集群类似于Yarn集群,基本上与Yarn集群的作用是一样的,主要区别在于Yarn集群是通用的资源调度平台,而Spark集群仅支持运行Spark程序。
(二)集群角色介绍
当Spark程序运行在集群上时,主要由4个部分组成:
- Driver
Driver是一个JVM Process进程,我们编写的Spark应用程序运行在Driver上,由Driver进程执行。 - Master
Master是一个JVMProcess进程, 主要负责资源的调度和分配,以及管理众多的Worker从节点,同时接收客户端提交的任务请求并负责分配Driver程序所运行的Worker节点。 - Worker
Worker也是一个JVM Process进程,一个Worker运行在集群中的一台服务器上,主要负责接收Driver程序分配的任务和执行,并和Master主节点保持心跳,汇报自己的资源信息,Worker主要有两个职责,一个是用自身的内存存储RDD的Partition,另一个是启动其他进程和线程,对RDD的Partition分区进行处理和计算。 - Executor
不出意外的,Executor也是一个JVM Process进行,一个Woker节点上可以运行多个Executor进程,Executor通过启动多个线程,对RDD的Partition进行并行计算,也就是执行RDD的算子,例如map,flatMap等算子。
总结
Spark集群主要有4个部分,Master、Worker、Driver和Executor,Driver就是Spark程序,Master主要进行集群管理和资源分配,Woker则是提供自身的内存用于RDD算子的计算,而Executor借助Work提供的内存对RDD的Partition进行计算,4个组件共同完成整个任务的执行。