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等)来获取作业的计算结果。
原文地址: https://www.cveoy.top/t/topic/uXu 著作权归作者所有。请勿转载和采集!