1.Driver Programshell
用户编写的Spark程序称为Driver Program。每一个Driver程序包含一个表明集群环境的SparkContext对象,程序的执行从Driver程序开始,全部操做执行结束后回到Driver程序中,在Driver程序中结束。若是你是用spark shell,那么当你启动 Spark shell的时候,系统后台自启了一个 Spark 驱动器程序,就是在Spark shell 中预加载的一个叫做 sc 的 SparkContext 对象。若是驱动器程序终止,那么Spark 应用也就结束了。spa
2. SparkContext对象orm
每一个Driver Program里都有一个SparkContext对象,职责以下:对象
1)SparkContext对象联系 cluster manager(集群管理器),让 cluster manager 为Worker Node分配CPU、内存等资源。此外, cluster manager会在 Worker Node 上启动一个执行器(专属于本驱动程序)。blog
2)和Executor进程交互,负责Task(任务)的调度分配。进程
3. cluster manager 集群管理器(Master)内存
它对应的是Master进程。集群管理器负责集群的资源调度,好比为Worker Node分配CPU、内存等资源。并实时监控Worker的资源使用状况。一个Worker Node默认状况下分配一个Executor(进程)。 资源
从图中能够看到sc和Executor之间画了一根线条,这代表:程序运行时,sc是直接与Executor进行交互的。spark
因此,cluster manager 只是负责资源的管理调度,而任务的分配和结果处理它无论。io
4.Worker Node
Worker节点。集群上的计算节点,对应一台物理机器
5.Worker进程
它对应Worder进程,用于和Master进程交互,向Master注册和汇报自身节点的资源使用状况,并管理和启动Executor进程
6.Executor
负责运行Task计算任务,并将计算结果回传到Driver中。
7.Task
在执行器上执行的最小单元。好比RDD Transformation操做时对RDD内每一个分区的计算都会对应一个Task。