1. 术语解释
Master(standalone):资源管理的主节点(进程)
ClusterManager:在集群上获取资源的外部服务(如standalone,mesos,yarn)
WorlerNode:资源管理的从节点(进程),或者说管理本机资源的进程
Application:基于spark的用户程序,包含了driver程序和运行在集群上的executor程序
Driver program:用来连接工作进程(worker)的程序
Executor:是在一个worker进程所管理的节点上为某Application启动的进程,该进程负责运行任务,并且负责将数据存在内存或磁盘上,每个应用都有各自独立的executor
Task:被送到某个executor上的工作单元
Job:包含很多任务(Task)的并行计算,可以看做和action对应
Stage:一个Job会被拆分为很多组任务,每组任务被称为Stage,就像MapReduce分为map task和reduce task一样
2. 窄依赖和宽依赖
RDD 之间有一系列的依赖关系,依赖关系又分为窄依赖和宽依赖。
窄依赖
父 RDD 和子 RDD partition 之间的关系是一对一的。或者父 RDD 一个 partition 只对应一个子 RDD 的 partition 情况下的父 RDD 和子 RDD partition 关系是多对一的。不会有 shuffle 的产生。
宽依赖
父 RDD 与子 RDD partition 之间的关系是一对多。会有 shuffle 的产生。
资源层面
Master->worker->Executor->ThreadPool
任务层面
Application->Job->Stage->task
task->ThreadPool