Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
analysis Update block_manager.md Sep 3, 2017
pic Add files via upload Sep 3, 2017
README.md update format Apr 28, 2017

README.md

Spark源码分析

该专题主要分为两个大的章节,第一章是关于spark core的源码分析,第二章是关于spark sql的源码分析。

spark core

该章主要从两个角度分析了spark core的源码:计算和存储。

计算

计算方面涉及到的内容主要包含:作业及任务的调度和shuffle。这里默认读者已经了解了RDD的概念和原理,所以并未对RDD作分析。

Spark基础知识:该节主要介绍了Job,Stage,Task,Dependency等概念,并且从一个简单实例入手,阐述了这些概念间的关系。主要对Job的调度做了分析。最后简单介绍了Shuffle过程中涉及到的概念和流程。

Spark的Shuffle机制:该节主要分析了Spark中各种Shuffle的实现过程。

Spark的任务调度机制:该节介绍的是Task的调度机制,包括核心概念和实现流程。

存储

存储管理分两节讲解,第一节是从用户角度,即数据的存储单位Block的角度进行阐述,第二节是从实现方式的角度,即内存管理来阐述。

Spark Block管理:对于很对涉及到与存储打交道的操作(如Shuffle、broadcast等)来说,都会涉及到BlockManager。本节主要对BlockManager及相关概念进行分析。

Spark内存管理:BlockManager落实到具体的存储(内存,磁盘等)方面是利用MemoryManager来完成的。所以该节是对Spark的内存管理的实现进行分析。

spark sql

该章分为两部分:Catalyst分析和Join详解。

Catalyst分析

这部分是完成对Catalyst的分析,从sql语句的解析到logical前半部分是完成对Catalyst的分析,从sql语句的解析到logical plan,再到logical plan优化,然后是physical plan,最后是执行。如下图所示。

Catalyst实现

Spark SQL 基础知识:本节主要是对Spark中涉及到的几个关键概念进行介绍,包括Row,Expression,Attribute,QueryPlan和Tree。

Spark Catalyst分析阶段:该节从sql语句开始进行分析,所以会涉及到sql语句解析和生成LogicalPlan的内容。

Catalyst Logical Plan优化:本节是在上一节的基础上对LogicalPlan进行优化,主要分析了部分优化方案。

Spark SQL Physical Plan:本节是对优化后的Logical Plan进行处理,生成用于执行的Physical Plan。

Spark SQL 执行阶段:在PhysicalPlan生成之后,就是执行阶段,执行的时候会涉及到部分的优化方案,并且本节对DataSet的原理进行了分析。

Join详解

这部分主要是针对Join算子的分析,前半部分的分析涵盖基本的处理思路,但是并不会细致到每个算子都分析,如果相分析具体算子可以沿着前半部分的思路去挖掘。

Spark SQL Join分析——上:针对具体的Join算子,分析了从SQL语句的AST树解析到LogicalPlan优化完成,也就是生成PhysicalPlan之前,的代码。

Spark SQL Join分析——下:针对具体的Join算子,从LogicalPlan到Spark core中具体的shuffle操作之前做了分析。

You can’t perform that action at this time.