- Application(应用程序):指的是用户编写的Spark应用程序,包含了一个
Driver
功能的代码和分布在集群中多个节点上Executor代码。 - Driver (驱动器):
Spark Application
的main
函数在运行时会创建SparkContext,通常用SparkContext
代表Driver
,其中创建SparkContext
的目的是为了准备Spark应用程序的运行环境。在Spark中由SparkContext
负责和ClusterManager
通信,进行资源的申请、任务的分配和监控等;当Executor
部分运行完毕后,Driver
负责将SparkContext
关闭。 - Executor(执行器):
Application
运行在Worker
节点上的一个进程,该进程负责运行Task
,并负责将数据存在内存或者磁盘上。每个Application
都有各自独立的一批Executor
。在Spark on Yarn
模式下,其进程名称为CoarseGrainedExecutorBackend
,类似与Hadoop MR中的YarnChild
。一个CoarseGrainedExecutorBackend
进程有且仅有一个executor
对象,它负责将Task
包装成taskRunner
,并从线程池中抽取出一个空闲线程运行Task
。,每个CoarseGrainedExecutorBackend
能并行运行Task
的数量取决于分配给它的CPU
的个数。 - ClusterManager(集群管理器):指的是在集群上获取资源的外部服务,例如:
Standalone
中的master
,Yarn
中的ResourceManager
- Worker(工作者):集群中任何可以运行
Application
代码的节点。Spark on Yarn
模式中就是NodeManager
节点。 - Job(作业):包含多个Task组成的并行计算,由Spark action催生,一个
Job
包含多个RDD
及其作用于相应的RDD
上的各种操作。 - Stage(阶段):每个
Job
会被拆分成多组Task
,每组Task
被称为Stage
,也可被称为TaskSet
,一个Job
根据宽窄依赖分成多个stage
。 - Task(任务):被发送到某个
Executor
上的工作任务。 - DAG(有向无环图):RDD及其依赖关系构成的图。
- DAGScheduler(DAG调度器):根据
Job
构建基于Stage
的DAG
,并提交Stage
给TaskScheduler
。 - TaskScheduler(任务调度器):将
TaskSet
提交给Worker
节点集群运行并返回结果。
Spark架构相关的术语及其解释
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...