在详细解析之前,首先来看一下集群部署组件图,如图3-2所示。
图3-2 集群部署组件图
其中各个术语及相关术语的描述如下。
1)Driver Program:运行Application的main函数并且新建SparkContext实例的程序,称为驱动程序(Driver Program)。通常可以使用SparkContext来代表驱动程序(Driver Program)。
2)Cluster Manager:集群管理器(Cluster Manager),是集群资源管理的外部服务,在Spark上现在主要有Standalone、YARN和Mesos等3种集群资源管理器,Spark自带的Stan-dalone模式能够满足绝大部分纯粹的Spark计算环境中对集群资源管理的需求,基本上只有在集群中运行多套计算框架时才建议考虑YARN和Mesos。
3)Worker Node:集群中可以运行Application代码的工作结点(Worker Node),相当于Hadoop的Slave结点。(www.xing528.com)
4)Executor:在Worker Node上为Application启动的一个工作进程,在进程中负责任务(Task)的运行,并且负责将数据存放在内存或磁盘上,在Executor内部通过多线程的方式(即线程池)并发处理应用程序的具体任务。
每个Application都有各自独立的Executors,因此应用程序之间是相互隔离的。
5)Task:任务(Task)是指被Driver送到Executor上的工作单元,通常情况下一个任务(Task)会处理一个Partition的数据,每个Partition一般为一个HDFS的Block块的大小。
6)Application:Application是创建了SparkContext实例对象的Spark用户程序,包含了一个Driver program和集群中多个Worker上的Executor。
7)Job:和Spark的action相对应,每一个action,如count、savaAsTextFile等都会对应一个Job实例,每个Job会被拆分成多个Stages,一个Stage中包含一个任务集(TaskSet),任务集中的各个任务(Task)通过一定的调度机制发送到工作单位(Executor)上并行执行。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。