Spark 源码解析:Job 提交流程详解
Spark 的作业提交过程大致分为以下几个步骤:
- 构建 SparkConf 对象
SparkConf 类是 Spark 的配置类,用于配置 Spark 应用的各种属性,例如应用名称、运行模式、Master 地址、Executor 内存等。在提交作业之前,需要通过 SparkConf 对象来配置相关属性。
- 构建 SparkContext 对象
SparkContext 类是 Spark 应用的入口点,用于与集群进行通信,创建 RDD、累加器、广播变量等。在构建 SparkContext 对象时,需要将 SparkConf 对象作为参数传入。
- 创建 RDD
在 Spark 中,RDD 是一种抽象数据类型,代表一个不可变的分布式数据集。在创建 RDD 时,可以通过读取文件、从内存中创建、从其他 RDD 中转换等方式来实现。
- 创建作业
Spark 应用中的作业是由一系列的 RDD 操作组成的。在创建作业时,需要将 RDD 转换操作和行动操作组合在一起形成一个 DAG(有向无环图)。
- 提交作业
在提交作业之前,需要将作业 DAG 序列化成一个二进制文件,并将其上传到 Master 节点上。Master 节点会对作业进行调度,将其分配到可用的 Worker 节点上执行。
- 执行作业
Worker 节点接收到作业后,会根据作业 DAG 中的依赖关系,按顺序执行各个 RDD 操作。在执行过程中,Spark 会自动进行任务调度、数据分区、数据缓存等优化,以提高作业的性能和效率。
- 输出结果
当作业执行完成后,Spark 会将结果写回到本地文件系统或 HDFS 中。可以通过 SparkContext 对象提供的各种行动操作(例如 collect、count、reduce 等)来获取作业的计算结果。
原文地址: http://www.cveoy.top/t/topic/lHrv 著作权归作者所有。请勿转载和采集!