Spark源码分析——Spark架构
常用术语
术语 | 描述 |
---|---|
Application | 用户编写的程序。(Driver端的SparkContext、SparkConf和运行在Executors上用户编写的业务逻辑代码即map、reduce、reduceByKey等) |
Driver | 执行用户编写应用程序的main()方法并创建SparkContext |
Worker | 具体运行应用程序的节点 |
Executor | 运行Worker节点上的进程,用来执行具体的Task |
Task | 被送到Executor上执行的工作单位,Task有ShuffleMapTask和ResultTask |
Job | 包含很多Task的并行计算,可以理解为Spark RDD里面的action,每一个action会生成一个Job |
Stage | 每组Job都会被划分成若干个Stage |
Cluster Manager | 集群的资源管理器,在集群上获取资源的外部服务,例如Standalone、Mesos、Yarn |
Partition | 类似于Hadoop的Split,计算是以partition为单位进行的 |
Spark架构图–Standalone提交模式
整个Spark应用程序的执行就是stage分批次作为TaskSet提交到executor上执行,每个Task针对RDD的一个partition,执行我们定义的算子和函数。直到所有操作执行完为止。