所有分类
  • 所有分类
  • 精品课程
  • 课件资料
  • 标准资料
  • 资料手册
  • 图纸模型
  • 解说文案

Spark SQL内核剖析 朱锋 2018年版

Spark SQL内核剖析  

作者:朱锋  

出版时间:2018年版 

内容简介 

  Spark SQL 是 Spark 技术体系中较有影响力的应用(Killer application),也是 SQL-on-Hadoop 解决方案 中举足轻重的产品。《Spark SQL内核剖析》由 11 章构成,从源码层面深入介绍 Spark SQL 内部实现机制,以及在实际业务场 景中的开发实践,其中包括 SQL 编译实现、逻辑计划的生成与优化、物理计划的生成与优化、Aggregation 算子和 Join 算子的实现与执行、Tungsten 优化技术、生产环境中的一些改造优化经验等。 《Spark SQL内核剖析》不属于入门级教程,需要读者对基本概念有一定的了解。在企业中任职的系统架构师和软件开发人员,以及对大数据、分布式计算和数据库系统实现感兴趣的研究人员,均适合阅读《Spark SQL内核剖析》。 

目录 

第 1 章 Spark SQL 背景 

1.1 大数据与 Spark 系统 

1.2 关系模型与 SQL 语言 

1.3 Spark SQL 发展历程 

1.4 本章小结 

第 2 章 Spark 基础知识介绍 

2.1 RDD 编程模型 

2.2 DataFrame 与 Dataset 

2.3 本章小结 

第 3 章 Spark SQL 执行全过程概述 

3.1 从 SQL 到 RDD:一个简单的案例 

3.2 重要概念 

3.2.1 InternalRow 体系 

3.2.2 TreeNode 体系 

3.2.3 Expression 体系 

3.3 内部数据类型系统 

3.4 本章小结 

第 4 章 Spark SQL 编译器 Parser 

4.1 DSL 工具之 ANTLR 简介 

4.1.1 基于 ANTLR 4 的计算器 

4.1.2 访问者模式 

4.2 SparkSqlParser 之 AstBuilder 

4.3 常见 SQL 生成的抽象语法树概览 

4.4 本章小结 

第 5 章 Spark SQL 逻辑计划(LogicalPlan) 

5.1 Spark SQL 逻辑计划概述 

5.2 LogicalPlan 简介 

5.2.1 QueryPlan 概述 

5.2.2 LogicalPlan 基本操作与分类 

5.2.3 LeafNode 类型的 LogicalPlan 

5.2.4 UnaryNode 类型的 LogicalPlan 

5.2.5 BinaryNode 类型的 LogicalPlan 

5.2.6 其他类型的 LogicalPlan 

5.3 AstBuilder 机制:Unresolved LogicalPlan 生成 

5.4 Analyzer 机制:Analyzed LogicalPlan 生成 

5.4.1 Catalog 体系分析 

5.4.2 Rule 体系 

5.4.3 Analyzed LogicalPlan 生成过程 

5.5 Spark SQL 优化器 Optimizer 

5.5.1 Optimizer 概述 

5.5.2 Optimizer 规则体系 

5.5.3 Optimized LogicalPlan 的生成过程 

5.6 本章小结 

第 6 章 Spark SQL 物理计划(PhysicalPlan) 

6.1 Spark SQL 物理计划概述 

6.2 SparkPlan 简介 

6.2.1 LeafExecNode 类型 

6.2.2 UnaryExecNode 类型 

6.2.3 BinaryExecNode 类型 

6.2.4 其他类型的 SparkPlan 

6.3 Metadata 与 Metrics 体系 

6.4 Partitioning 与 Ordering 体系 

6.4.1 Distribution 与 Partitioning 的概念 

6.4.2 SparkPlan 的常用分区排序操作 

6.5 SparkPlan 生成 

6.5.1 物理计划 Strategy 体系 

6.5.2 常见 Strategy 分析 

6.6 执行前的准备 

6.6.1 PlanSubqueries 规则 

6.6.2 EnsureRequirements 规则 

6.7 本章小结 

第 7 章 Spark SQL 之 Aggregation 实现 

7.1 Aggregation 执行概述 

7.1.1 文法定义 

7.1.2 聚合语句 Unresolved LogicalPlan 生成 

7.1.3 从逻辑算子树到物理算子树 

7.2 聚合函数(AggregateFunction) 

7.2.1 聚合缓冲区与聚合模式(AggregateMode) 

7.2.2 DeclarativeAggregate 聚合函数 

7.2.3 ImperativeAggregate 聚合函数 

7.2.4 TypedImperativeAggregate 聚合函数 

7.3 聚合执行 

7.3.1 执行框架 AggregationIterator 

7.3.2 基于排序的聚合算子 SortAggregateExec 

7.3.3 基于 Hash 的聚合算子 HashAggregateExec 

7.4 窗口(Window)函数 

7.4.1 窗口函数定义与简介 

7.4.2 窗口函数相关表达式 

7.4.3 窗口函数的逻辑计划阶段与物理计划阶段 

7.4.4 窗口函数的执行 

7.5 多维分析 

7.5.1 OLAP 多维分析背景 

7.5.2 Spark SQL 多维查询 

7.5.3 多维分析 LogicalPlan 阶段 

7.5.4 多维分析 PhysicalPlan 与执行 

7.6 本章小结 

第 8 章 Spark SQL 之 Join 实现 

8.1 Join 查询概述 

8.2 文法定义与抽象语法树 

8.3 Join 查询逻辑计划 

8.3.1 从 AST 到 Unresolved LogicalPlan 

8.3.2 从 Unresolve LogicalPlan 到 Analyzed LogicalPlan 

8.3.3 从 Analyzed LogicalPlan 到 Optimized LogicalPlan 

8.4 Join 查询物理计划 

8.4.1 Join 物理计划的生成 

8.4.2 Join 物理计划的选取 

8.5 Join 查询执行 

8.5.1 Join 执行基本框架 

8.5.2 BroadcastJoinExec 执行机制 

8.5.3 ShuffledHashJoinExec 执行机制 

8.5.4 SortMergeJoinExec 执行机制 

8.6 本章小结 

第 9 章 Tungsten 技术实现 

9.1 内存管理与二进制处理 

9.1.1 Spark 内存管理基础 

9.1.2 Tungsten 内存管理优化基础 

9.1.3 Tungsten 内存优化应用 

9.2 缓存敏感计算(Cache-aware computation) 

9.3 动态代码生成(Code generation) 

9.3.1 漫谈代码生成 

9.3.2 Janino 编译器实践 

9.3.3 基本(表达式)代码生成 

9.3.4 全阶段代码生成(WholeStageCodegen) 

9.4 本章小结 

第 10 章 Spark SQL 连接 Hive 

10.1 Spark SQL 连接 Hive 概述 

10.2 Hive 相关的规则和策略 

10.2.1 HiveSessionCatalog 体系 

10.2.2 Analyzer 之 Hive-Specific 分析规则 

10.2.3 SparkPlanner 之 Hive-Specific 转换策略 

10.2.4 Hive 相关的任务执行 

10.3 Spark SQL 与 Hive 数据类型 

10.3.1 Hive 数据类型与 SerDe 框架 

10.3.2 DataTypeToInspector 与 Data Wrapping 

10.3.3 InspectorToDataType 与 Data Unwrapping 

10.4 Hive UDF 管理机制 

10.5 Spark Thrift Server 实现 

10.5.1 Service 体系 

10.5.2 Operation 与 OperationManager 

10.5.3 Session 与 SessionManager 

10.5.4 Authentication 安全认证管理 

10.5.5 Spark Thrift Server 执行流程 

10.6 本章小结 

第 11 章 Spark SQL 开发与实践 

11.1 腾讯大数据平台(TDW)简介 

11.2 腾讯大数据平台 SQL 引擎(TDW-SQL-Engine) 

11.2.1 SQL-Engine 背景与演化历程 

11.2.2 SQL-Engine 整体架构 

11.3 TDW-Spark SQL 开发与优化 

11.3.1 业务运行支撑框架 

11.3.2 新功能开发案例 

11.3.3 性能优化开发案例 

11.4 业务实践经验与教训 

11.4.1 Spark SQL 集群管理的经验 

11.4.2 Spark SQL 业务层面调优 

11.4.3 SQL 写法的“陷阱” 

11.5 本章小结 

总结 

参考文献 

资源下载
下载价格10 金币
VIP免费
0
没有账号?注册  忘记密码?

社交账号快速登录