从图中可以看到Spark Application运行到集群上时,由Driver Program和Executors两个部分组成。
- Driver Program:
- 相当于AppMaster,整个应用管理者,负责应用中所有Job的调度执行。
- 运行JVM Process,运行程序的MAIN函数,必须创建SparkContext上下文对象。
- 一个SparkApplication仅有一个。
- Executors:
- 相当于一个线程池,运行JVM Process,其中有很多线程,每个线程运行一个Task任务,一个Task任务运行需要1 Core CPU,所有可以认为Executor中线程数就等于CPU Core数。
- 一个Spark Application可以有多个,可以设置个数和资源信息。