RDD在Spark中运行,主要分为以下三步:
- 创建RDD对象
- DAG scheduler模块介入运算,计算RDD之间的依赖关系,形成DAG
- 每一个Job被划分为多个stage,划分stage的一个主要依据是当前计算因子的输入是否确定,如果确定将其分在同一个stage,避免多个stage之间的消息传递开销
spark集群架构
Term(术语) | Meaning(含义) |
---|---|
Application | Spark 应用程序,由集群上的一个 Driver 节点和多个 Executor 节点组成。 |
Driver program | 主运用程序,该进程运行应用的 main() 方法并且创建 SparkContext |
Cluster manager | 集群资源管理器(例如,Standlone Manager,Mesos,YARN) |
Worker node | 执行计算任务的工作节点 |
Executor | 位于工作节点上的应用进程,负责执行计算任务并且将输出数据保存到内存或者磁盘中 |
Task | 被发送到 Executor 中的工作单元 |
执行过程:
- 用户程序创建SparkContest后,它会连接到集群资源管理器,集群资源管理器会为用户分配计算资源,并启动Executor
- Driver将计算程序划分为不同的执行阶段和多个task,之后将task发送给Executor
- Executor负责执行task,并将执行状态汇报给Driver,同时也会将当前节点资源的使用情况汇报给集群资源管理器