Driver(驱动器):
用来创建SparkContext、创建RDD,执行开发程序中的main方法的进程,以及进行RDD的转换和执行。
主要负责:
1)把用户程序转为job
2)跟踪Executor的运行状况
3)为执行器(Executor)节点调度任务(task)
4)UI展示应用运行状况
Executor(执行器):
主要负责行动任务(互相独立),伴随着Spark启动而启动。若发生Excutor故障,Spark 应用也可以继续执行,会将出错节点上的任务调度到其他Executor节点上继续运行。
主要负责:
1)负责运行组成 Spark 应用的任务,并将结果返回给驱动器进程;
2)通过自身的块管理器(Block Manager)为用户程序中要求缓存的RDD提供内存式存储。RDD是直接缓存在Executor进程内的,因此任务可以在运行时充分利用缓存数据加速运算。