Spark源码解析 - 分布式计算执行流程

将DF的action操作转为RDD操作 以DataSet#head这个action算子为例 1 2 3 4 5 6 org.apache.spark.sql.Dataset#head:2728 org.apache.spark.sql.Dataset#collectFromPlan:3715 org.apache.spark.sql.execution.TakeOrderedAndProjectExec#executeCollect // 这里是调用了SparkPlan子类UnaryExecNode类型的TakeOrderedAndProjectExec重写的executeCollect
阅读更多

Spark源码解析 - Spark SQL处理过程

以Spark 3.2.0版本为基准,分析Spark SQL执行过程 Parsing阶段 Parsing阶段基于ANTLR4实现,用于将SQL解析为Unresolved Logical Plan。具体流程为,在执行SQL查询时,通过SparkSession的sessionState属性,调用sessionState.sqlParser.parsePlan方法进行解析。sqlParser内部实际借助AstBuilder,并采用访问者模式(Visitor Pattern),遍历ANTLR4生成的各类语法树Context节点,将其转换为对应的LogicalPlan节点,最终构建出Unresolved
阅读更多

Spark源码解析 - spark-submit提交过程

以Spark 3.2.0版本为基准,yarn-cluster 模式的 spark application 提交过程如下 Client 提交 AM 到 yarn 过程 通过 spark-submit 提交 spark 任务之后,client 端将 ApplicationMaster 提交到 yarn 的过程如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 org.apache.spark.deploy.SparkSubmit#main:1052 org.apache.spark.deploy.SparkSubmit#doSubmit:1043 org.apac
阅读更多