美文网首页
【工作】Spark 3.0 源码目录结构

【工作】Spark 3.0 源码目录结构

作者: 苏柏亚的星空 | 来源:发表于2019-12-27 00:41 被阅读0次

    工作用的最多的框架了。3.0 release 在即,先开个坑。

    3.0 增加了很多新特性,包括

        动态分区裁剪(Dynamic Partition Pruning)、

        自适应查询执行(Adaptive Query Execution)、

        加速器支持(Accelerator-aware Scheduling)、

        支持 Catalog 的数据源API(Data Source API with Catalog Supports)、

        SparkR 中的向量化(Vectorization in SparkR)、

        支持 Hadoop 3/JDK 11/Scala 2.12 等等。

    准备花一个星期梳理代码框架,随后挑一些关注的重点内容分析源码。

    主要是spark core + sql 相关。

    spark源码目录还算分明,毕竟那么多顶级程序员写了10年的工业级开源框架。

    包的层次结构最多3层,不会嵌套很深。

    按个人理解的重要程度,分为:

    ★  辅助类,不重要 ,帮助框架能跑,如配置相关。

    ★ ★  串连与实现,整个代码的血肉,组成最多的部分,如RPC收发,Block管理。

    ★ ★ ★  核心概念与框架的定义,计算的源头与驱动,如RDD定义与TaskSet/Job调度。


    一、spark-core 代码全景

    二、spark-sql 代码全景

        sql是社区最热门与投入最大的版块,当然理解难度也最大。

        尤其是catalyst涉及大量数据库概念与优化思路。 

        spark一直在做的事就是把数据表示统一,从RDD => DataFrame => DataSet,

        然后在统一的结构化数据层面做框架上的优化,(毕竟SQL是最广泛与简便的分析模式)

        包括数据结构、内存、序列化、CPU/现代编译器耦合、代码生成等各种措施。

        与这些比起来,上面的core模块似乎简单得是个弟弟。。。

        sql下又有4个包,其中hive/hive-thriftserver没啥好记的,

        只是一些兼容支持,元数据相关,与jdbc服务的实现层。

        主要看catalyst与sql-core。

    相关文章

      网友评论

          本文标题:【工作】Spark 3.0 源码目录结构

          本文链接:https://www.haomeiwen.com/subject/dzrroctx.html