|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《Spark SQL内核剖析》
5 ~7 Q; K, Y" O+ q% Ejava电子书推荐理由: 经过多年的发展,大数据处理技术逐步成熟。作为业界大数据计算的事实标准,Apache Spark系统已经广泛应用于各大企业与研究机构,并形成完整的生态系统。Spark系统包含了SQL、GraphX和R等各个子系统以支持不同业务领域的需求。作为传统关系数据库/数据仓库在大数据场景下的解决方案,Spark SQL已经成为了业界的重要选择方案,同时也成为了Spark开源社区中*为活跃的部分。本书聚焦于Spark SQL系统,对其整体架构、内部各个模块的技术实现机制进行源码级别的剖析,涉及到SQL编译、逻辑计划、物理执行计划、重要查询(如Aggregation与Join等)的技术细节。此外,本书内容上还会结合生产环境的海量应用,分享大量真实开发案例与实践优化经验
! v( ^) N8 m" K/ u. e' f$ \( d6 z/ F% |
作者:朱锋! w. \6 ]7 W& ~4 W
出版社:电子工业出版社 Z( Q3 _) B# E
出版时间:2018年08月
' s1 z) B# ~- p) E9 l书籍价格:69.0元
# C+ |5 [2 o$ q. B) b& {- k& ^. H7 ~
: x' C0 e+ j$ u8 O$ d$ O
# Y- H# Q5 H0 I; C5 r! ^1 g3 u$ J, r
java电子书目录:
/ k% E+ ]! I4 k8 f# A8 `" Z( F第 1 章 Spark SQL 背景
! b1 {% T5 x( W1.1 大数据与 Spark 系统4 s$ ]! S1 [ ^, X. x
1.2 关系模型与 SQL 语言6 ]! \$ ^; H1 n4 ~$ u
1.3 Spark SQL 发展历程% _" Y" c' F8 E( T# t$ g9 B6 L
1.4 本章小结
7 V& ]3 [+ j* H% A2 \) K- q第 2 章 Spark 基础知识介绍6 \% ?% Z( O" R& X$ h8 Z5 f. m/ m
2.1 RDD 编程模型
7 n6 \5 ]7 t$ r: ]3 |* d& t- R& L2.2 DataFrame 与 Dataset
8 r4 S+ d8 s. r8 p ~+ ]2.3 本章小结
% J+ ]# d$ O4 N0 q% E( |第 3 章 Spark SQL 执行全过程概述. h& f: D* ?! T7 `/ L5 B# n8 ~
3.1 从 SQL 到 RDD:一个简单的案例
4 i1 ]8 n' ]" p3.2 重要概念" U, X n, _2 i R c
3.2.1 InternalRow 体系
7 q; X* z( @- @# ]3.2.2 TreeNode 体系6 r! V8 U; S% h5 X3 Z$ p* r
3.2.3 Expression 体系! Y8 l- Y6 y' M' L; u* T& {; |$ y
3.3 内部数据类型系统. F5 E% e; U: r3 e& v1 f
3.4 本章小结; |; \+ f" d% D4 T" j' r
第 4 章 Spark SQL 编译器 Parser
3 q$ z9 O ^) B1 `: q5 e0 y6 L, K4.1 DSL 工具之 ANTLR 简介
, s1 v. j3 N% C; T/ t6 H3 q6 Y4.1.1 基于 ANTLR 4 的计算器- h$ G* I( m, }. i, Z1 A* y! P! L
4.1.2 访问者模式
7 I5 `& N7 D" G; z4.2 SparkSqlParser 之 AstBuilder* |( c n. W5 [6 z
4.3 常见 SQL 生成的抽象语法树概览
: a. x/ @/ T/ H, o& `/ ^4.4 本章小结
$ S$ Z. h7 b5 d& v/ M- W2 A第 5 章 Spark SQL 逻辑计划(LogicalPlan)
# Y" h7 C) ^$ R" X5.1 Spark SQL 逻辑计划概述
" J2 ~7 ]3 [) i) o" B; \4 m5.2 LogicalPlan 简介6 M2 \7 x2 _% q
5.2.1 QueryPlan 概述
) i4 M6 }* Y, W8 H7 l0 n5.2.2 LogicalPlan 基本操作与分类% i$ S `, V3 C h
5.2.3 LeafNode 类型的 LogicalPlan
7 V6 z; q6 W- l7 k y3 k: `& s5.2.4 UnaryNode 类型的 LogicalPlan
* w6 t1 d8 B% J1 o% P* \+ ^* o5.2.5 BinaryNode 类型的 LogicalPlan% L8 u5 ]; u# k8 G
5.2.6 其他类型的 LogicalPlan; j; O" X! B, ~# c
5.3 AstBuilder 机制:Unresolved LogicalPlan 生成; |1 e: K" x# K2 U8 a, P# b
5.4 Analyzer 机制:Analyzed LogicalPlan 生成* n% Y9 d1 b1 F! t: w0 B
5.4.1 Catalog 体系分析
: m, T) y1 ?6 ^! ~ V8 Q5.4.2 Rule 体系' [% o: O6 V( R& N6 l
5.4.3 Analyzed LogicalPlan 生成过程0 N; h: x, L H/ _# ]$ p$ P
5.5 Spark SQL 优化器 Optimizer/ @ f4 f6 \& p( C% R7 d( d- u; ^
5.5.1 Optimizer 概述' j: a6 |, N3 r7 D4 A6 J) e$ o
5.5.2 Optimizer 规则体系: w, w% c/ g! Q* k; I( M
5.5.3 Optimized LogicalPlan 的生成过程* N' o: ]# |" `
5.6 本章小结
7 T6 N+ a. d; t# Y* I. n4 c G8 r第 6 章 Spark SQL 物理计划(PhysicalPlan)
/ k. k+ n1 @. X6.1 Spark SQL 物理计划概述
8 Q/ @: L1 v6 |, X; s" Z0 D8 O- P6.2 SparkPlan 简介
5 n7 p5 K9 |5 @6.2.1 LeafExecNode 类型
3 ^' ?& l1 P6 d5 p O6.2.2 UnaryExecNode 类型4 s- L, `2 X9 }( y1 ~; z
6.2.3 BinaryExecNode 类型& K; v. d7 B, t, A" ^* o
6.2.4 其他类型的 SparkPlan
" _2 F' N4 A( ~$ t5 L0 ^6.3 Metadata 与 Metrics 体系# m7 i& c3 J, o0 L& C
6.4 Partitioning 与 Ordering 体系
5 Q; a* ^3 d- N! j; H; W% m6.4.1 Distribution 与 Partitioning 的概念
M- w! t0 z' E6.4.2 SparkPlan 的常用分区排序操作/ J5 o4 I A: T: \, O
6.5 SparkPlan 生成* ~6 f& V& f* Z" m
6.5.1 物理计划 Strategy 体系
8 {/ A! S4 s& r4 i6.5.2 常见 Strategy 分析
" ^" S1 p! y0 ^% r! R" {/ W6.6 执行前的准备
; T0 l% d- P% f" j' x8 J' P0 q6.6.1 PlanSubqueries 规则
1 {1 T, c0 V# v) e6.6.2 EnsureRequirements 规则7 v# T% o" j/ ?7 E: T
6.7 本章小结; t; ?- `8 k1 Z$ z
第 7 章 Spark SQL 之 Aggregation 实现
9 B4 a/ V6 V: p4 Q4 A J; ~7.1 Aggregation 执行概述( e- F: Q- ]5 c3 ]
7.1.1 文法定义& k4 P9 x: C5 {8 O( B2 w7 a7 R
7.1.2 聚合语句 Unresolved LogicalPlan 生成1 m+ p) d+ `* `: y+ K3 n( F
7.1.3 从逻辑算子树到物理算子树" T3 m5 D+ a) v9 v9 G2 {- b
7.2 聚合函数(AggregateFunction)# X p+ A4 h x$ p+ O: W
7.2.1 聚合缓冲区与聚合模式(AggregateMode)
3 }& ?2 I- [5 i, B; P6 |, ?; f5 f4 G2 t7.2.2 DeclarativeAggregate 聚合函数
% [3 H% G' u' W2 i7.2.3 ImperativeAggregate 聚合函数& A0 J. l. v* `
7.2.4 TypedImperativeAggregate 聚合函数
% k: i3 l% K9 l. Y/ W2 I! {; N% r7.3 聚合执行, F+ |0 B1 h, H- p0 \8 Q6 Y4 o
7.3.1 执行框架 AggregationIterator7 B# {! _) c' d5 o' y, y
7.3.2 基于排序的聚合算子 SortAggregateExec
5 A9 V w! b" e8 A- v; G9 \7.3.3 基于 Hash 的聚合算子 HashAggregateExec
. _1 q0 G5 v" D3 n8 [7.4 窗口(Window)函数
1 q5 I5 s6 D/ ~6 `7.4.1 窗口函数定义与简介
! L. D3 f" j& A9 d1 }3 U7 A7.4.2 窗口函数相关表达式
+ H$ Y( z" w" a7 b. W" V7.4.3 窗口函数的逻辑计划阶段与物理计划阶段4 }" H( h+ Q7 @5 q
7.4.4 窗口函数的执行, [) t( ]2 B4 F7 J: q
7.5 多维分析
6 ~$ j. p( k' k2 ?& u$ A& Z! g7.5.1 OLAP 多维分析背景
+ K! X1 z7 g' ~" U7.5.2 Spark SQL 多维查询/ o, D7 q4 s2 g# q
7.5.3 多维分析 LogicalPlan 阶段
. d$ ^) j: X9 Z- S7.5.4 多维分析 PhysicalPlan 与执行
% q# |4 N8 f% Q! e5 G: ^4 n7.6 本章小结
9 F, b1 A9 [% z/ D; p7 r8 n2 t第 8 章 Spark SQL 之 Join 实现
" ^0 T1 u" q# {2 J8.1 Join 查询概述: t- \ D+ b4 [8 o3 \/ j! T
8.2 文法定义与抽象语法树: e V G/ g6 h5 K+ {/ w
8.3 Join 查询逻辑计划
- f7 `: x$ h! t8.3.1 从 AST 到 Unresolved LogicalPlan! u4 g: s+ u( Z3 f: s; v7 q
8.3.2 从 Unresolve LogicalPlan 到 Analyzed LogicalPlan
' j3 T' E3 ^+ [2 C# @# b, I+ ?8.3.3 从 Analyzed LogicalPlan 到 Optimized LogicalPlan" F9 X2 B7 l" r" j
8.4 Join 查询物理计划, N' ]% k. V$ X
8.4.1 Join 物理计划的生成
6 |7 b5 @# U6 E! t9 C; Z# r8.4.2 Join 物理计划的选取, _9 Y% P! v( q8 n( U& t9 }
8.5 Join 查询执行$ j1 w1 U: O3 {' s E
8.5.1 Join 执行基本框架
: i3 `, C9 y h/ ?8.5.2 BroadcastJoinExec 执行机制
! B% f6 r; t7 B$ o. N" ?8.5.3 ShuffledHashJoinExec 执行机制
8 g4 s5 |- }! n. V8 u* i8.5.4 SortMergeJoinExec 执行机制
) N* a1 Z* q7 ~/ @/ @+ a8.6 本章小结# ]. [0 c0 D( F$ {" |
第 9 章 Tungsten 技术实现
" k% {5 j1 d W4 O& M* X9.1 内存管理与二进制处理
, k6 y* V4 ?4 U8 y0 f9.1.1 Spark 内存管理基础8 U, v* P3 B- V( g& d- Z9 F7 V
9.1.2 Tungsten 内存管理优化基础# {; Q9 `* C+ O4 l
9.1.3 Tungsten 内存优化应用
4 i' d* @" A _: M2 X9.2 缓存敏感计算(Cache-aware computation)
% g3 J' Z4 `. V! @( E9 i- l9.3 动态代码生成(Code generation)- M1 f: i+ b) m2 c# [
9.3.1 漫谈代码生成0 l+ ^7 s0 U- \3 ?9 J! y+ S
9.3.2 Janino 编译器实践
4 P$ `) \! Q1 T9 d, M9.3.3 基本(表达式)代码生成
& f" F% L, Y. U+ S: c: T9.3.4 全阶段代码生成(WholeStageCodegen)
+ @# S/ s) D0 `$ r( `9 T( Z2 S( S9.4 本章小结/ V3 y: R) _: f+ S4 P9 \
第 10 章 Spark SQL 连接 Hive$ R# J) t9 \+ D U- x
10.1 Spark SQL 连接 Hive 概述0 \# O) @* b& W( O7 `; K
10.2 Hive 相关的规则和策略& p7 v2 W1 X: K5 G% l; r. g
10.2.1 HiveSessionCatalog 体系
+ Y2 U* S) b6 ]: Q+ _( [7 V10.2.2 Analyzer 之 Hive-Specific 分析规则
@, F/ y2 ?& x5 C7 Q8 r- \2 m10.2.3 SparkPlanner 之 Hive-Specific 转换策略
9 I4 W" J3 i4 f- ~10.2.4 Hive 相关的任务执行. S4 r- |5 m8 Z4 \% a1 @& [
10.3 Spark SQL 与 Hive 数据类型4 a7 |4 X0 |8 s+ ^" z1 N$ }2 s% b
10.3.1 Hive 数据类型与 SerDe 框架3 q! j$ G3 O; T% D) [" |9 S
10.3.2 DataTypeToInspector 与 Data Wrapping2 p# N n, J% M! Y* a) O
10.3.3 InspectorToDataType 与 Data Unwrapping0 V) z D# S6 a
10.4 Hive UDF 管理机制 ^8 e( N3 K% E6 v& \
10.5 Spark Thrift Server 实现
( u! [' A( K3 A: y, A( i10.5.1 Service 体系 javazx.com
% R3 K& v2 X! s1 U+ y- i10.5.2 Operation 与 OperationManager
8 B+ c' F& M; j, G10.5.3 Session 与 SessionManager0 m9 H4 }: k+ d# y: X* T6 g* l
10.5.4 Authentication 安全认证管理, p; b8 J" e, b, ]
10.5.5 Spark Thrift Server 执行流程
4 x5 Y2 V, o: }6 m9 T5 v& L10.6 本章小结# o# Q( ^- }8 V1 i# L+ b
第 11 章 Spark SQL 开发与实践9 Z6 F* A7 M! J" W, _4 S( C8 q$ S& Y
11.1 腾讯大数据平台(TDW)简介1 B- e8 `; B- H* g7 g
11.2 腾讯大数据平台 SQL 引擎(TDW-SQL-Engine)7 `0 N* W# w, c+ \+ ~7 v. Z
11.2.1 SQL-Engine 背景与演化历程" x- a F- T8 b( ~; [3 R; J
11.2.2 SQL-Engine 整体架构
: ?# E% H6 S; H11.3 TDW-Spark SQL 开发与优化7 e( @: \& G: H+ q& j& I' p \
11.3.1 业务运行支撑框架/ h6 o8 z$ l9 X4 h4 n) G
11.3.2 新功能开发案例
- r/ c5 ]/ `$ L5 u) R6 r11.3.3 性能优化开发案例: H6 @* t! n+ {* a9 K& u; r
11.4 业务实践经验与教训; s/ Z) k; n. _7 p& _) Z# a
11.4.1 Spark SQL 集群管理的经验. H& Z9 }* p. F' k
11.4.2 Spark SQL 业务层面调优% R4 |" X, G' a4 @
11.4.3 SQL 写法的“陷阱”
" U$ j6 f1 x% t( B0 ]7 t11.5 本章小结/ |$ D" ~7 b1 O. S$ e7 V$ D
总结" d- t1 t$ m7 Z$ Y9 f
参考文献
4 K, }; t; a9 D+ }' tJava资料百度网盘下载地址链接(百度云):Spark SQL内核剖析@www.javazx.com.pdf【密码回帖可见】9 t! B( f. r; l5 `
: i0 i# M7 R- l5 O' x5 m
* ^: ^$ Z( e; D1 x O, ~
. o+ y. r# n. b7 r3 U: Q) a& \3 v! m$ o# u; h6 ~: w
' }$ x4 M3 \ o/ G
" F( l5 B N. g ~: N+ e |
|