spark-2 spark集群架构
spark集群架构
spark集群架构
Driver
- 执行客户端写好的main方法,Driver端可能在客户端(本地模式)也可能在集群上
- Driver会构建好SparkContext,它是所有程序的入口
Application
- 本身就是一个应用程序,它包含了客户端的代码和任务运行资源信息
ClusterManager
资源调度角色,在不同的平台ClusterManager
的身份不同
-
standAlone
- spark自带的集群模式,整个任务的资源分配由spark集群的老大
Master
负责 - 当把程序提交到standAlone时,负责计算的就算
worker node
- spark自带的集群模式,整个任务的资源分配由spark集群的老大
-
yarn
- 可以把spark程序提交到yarn运行,整个任务的资源分配由yarn集群的老大
ResourceManager
负责 - 当把spark程序提交到yarn集群运行时,负责运算的就算
nodemanager
- 可以把spark程序提交到yarn运行,整个任务的资源分配由yarn集群的老大
-
mesos
- apache开源的一个类似yarn的资源调度平台,此处不介绍
注意:
- Master Worker Executor都是spark集群的概念,当提交到yarn中时,就不会涉及这些了。
- 无论提交到yarn还是spark,spark程序都是基于内存。提交到哪只是决定由谁来分配、管理资源
Master
- spark集群的从节点,负责任务计算的节点。worker可以有多个
Executor
- 它是一个进程(计算资源),在
worker
节点被启动 - 每个
Application
都有自己的计算资源Executor
(可以有多个),各个Application
的计算资源Executor
是相互隔离的 - 每个
Executor
中有多个task
运行任务,一个task
对应一个线程
Task
- spark任务是以
task
线程的方式运行在对应的worker
节点对应的executor
中的