|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《Spark SQL内核剖析》; U! y: }2 w; e* v9 M+ @+ R
java电子书推荐理由: 经过多年的发展,大数据处理技术逐步成熟。作为业界大数据计算的事实标准,Apache Spark系统已经广泛应用于各大企业与研究机构,并形成完整的生态系统。Spark系统包含了SQL、GraphX和R等各个子系统以支持不同业务领域的需求。作为传统关系数据库/数据仓库在大数据场景下的解决方案,Spark SQL已经成为了业界的重要选择方案,同时也成为了Spark开源社区中*为活跃的部分。本书聚焦于Spark SQL系统,对其整体架构、内部各个模块的技术实现机制进行源码级别的剖析,涉及到SQL编译、逻辑计划、物理执行计划、重要查询(如Aggregation与Join等)的技术细节。此外,本书内容上还会结合生产环境的海量应用,分享大量真实开发案例与实践优化经验
) g) g |! M$ [% B# P# G. k& Q" _
; f5 e# m2 x, k0 [& G9 J5 n作者:朱锋
' a+ ^2 R/ u) n. x) z; M出版社:电子工业出版社
2 J3 B& W3 w/ E w) }出版时间:2018年08月
8 B. r" h F1 J! h/ |( d9 ]" z/ } B! R; h书籍价格:69.0元
# N* U8 D" k8 {( A. l! T" Z K5 r+ v% Q: @2 Q! r
+ j4 o8 [1 h) o" T" h0 \ [
% ? R- I: H% m- X9 Rjava电子书目录:
6 ]- b' F4 i3 d& a; D3 V第 1 章 Spark SQL 背景+ x6 Y+ r8 G+ y u( M* n8 q! K, b0 l
1.1 大数据与 Spark 系统4 s" K# n/ S) r' H6 |
1.2 关系模型与 SQL 语言# u4 b) Q" Z$ {# r+ R% Q$ |
1.3 Spark SQL 发展历程- ^' [+ @, }+ }1 h% Z/ S) H0 I: s
1.4 本章小结5 c' x: d* |# `
第 2 章 Spark 基础知识介绍" i1 ~( i: r( _0 J8 r" S
2.1 RDD 编程模型
, @/ _: R6 X" k' [$ }2.2 DataFrame 与 Dataset# {, z3 t$ F0 p- q. K
2.3 本章小结
/ N. ?, R! e6 G第 3 章 Spark SQL 执行全过程概述+ t# o1 Q2 }8 b0 k8 W. }- J& z
3.1 从 SQL 到 RDD:一个简单的案例2 l+ F9 t) ~- e' k
3.2 重要概念, \, C0 A$ e' ?+ R( x
3.2.1 InternalRow 体系
) Y t( [" S2 r3.2.2 TreeNode 体系$ @( m" @' {# Q1 y* P( R
3.2.3 Expression 体系* N4 ]; M' G) ~& m- \- r5 `
3.3 内部数据类型系统% w) G0 N2 A. Y6 J& c7 x: Z# o# R. L
3.4 本章小结
& {6 b4 ]) B; z6 a2 V V8 C* h第 4 章 Spark SQL 编译器 Parser' j$ i4 V: F. t, j2 q
4.1 DSL 工具之 ANTLR 简介2 { L9 \' k' z( }( Z& U/ B
4.1.1 基于 ANTLR 4 的计算器
" h- f8 F3 J9 P0 P0 \0 `7 C9 s4.1.2 访问者模式
: K0 B' |8 w' R5 [' J: V4.2 SparkSqlParser 之 AstBuilder* i2 P3 P0 Q! G4 c
4.3 常见 SQL 生成的抽象语法树概览
' m6 C* Y- `4 d4.4 本章小结
& E- K: @! B1 f* \1 y: f2 [第 5 章 Spark SQL 逻辑计划(LogicalPlan)
$ w. \; p r9 W3 j5 x5.1 Spark SQL 逻辑计划概述
+ F/ D7 v, @: y& u- j" l5.2 LogicalPlan 简介5 Q/ S/ `9 ^8 T& y1 R* e
5.2.1 QueryPlan 概述: d5 K$ C5 f+ K( p& c
5.2.2 LogicalPlan 基本操作与分类; h& N. Q% o7 H4 p9 T) A
5.2.3 LeafNode 类型的 LogicalPlan
% ~ K* y" l, l$ U; k5.2.4 UnaryNode 类型的 LogicalPlan
/ N( H" Q& x9 U' Z5.2.5 BinaryNode 类型的 LogicalPlan" q- Y3 ?" ~# L! A- ~, [
5.2.6 其他类型的 LogicalPlan
; G* P7 V9 Y% c+ a5 A5.3 AstBuilder 机制:Unresolved LogicalPlan 生成
: L" @: {. d+ y/ R/ L2 E5.4 Analyzer 机制:Analyzed LogicalPlan 生成8 a# [$ {- ]+ w& R3 q
5.4.1 Catalog 体系分析4 {, A( U& a6 H$ }) z: l
5.4.2 Rule 体系; g1 L( E# I1 f2 Q& `
5.4.3 Analyzed LogicalPlan 生成过程) @% p$ Q. R) _2 z
5.5 Spark SQL 优化器 Optimizer) c, D* m8 q1 t# ~
5.5.1 Optimizer 概述
. j$ V6 t6 H: n* E6 J5.5.2 Optimizer 规则体系- I7 _* S+ x* d. l& L" c
5.5.3 Optimized LogicalPlan 的生成过程# l) ^: A% T0 q S6 W
5.6 本章小结 [+ k+ i4 f7 q2 F& Q9 F* s+ {0 Y
第 6 章 Spark SQL 物理计划(PhysicalPlan)0 h1 |+ d( w6 ~2 A/ Q; b6 M# b
6.1 Spark SQL 物理计划概述
' F% [6 R! Z# W7 n6.2 SparkPlan 简介2 y# S6 f6 m3 s1 A3 J% A% _
6.2.1 LeafExecNode 类型/ q" h U$ I4 P, Q5 D, t- Y+ @
6.2.2 UnaryExecNode 类型6 H1 G/ p& a' C# Q9 s) X
6.2.3 BinaryExecNode 类型# q5 W, F: y# j, J# ]% \2 g
6.2.4 其他类型的 SparkPlan
$ w7 M' k( C9 G: k, L. s6.3 Metadata 与 Metrics 体系
8 N% L; s$ f. Q$ T6.4 Partitioning 与 Ordering 体系' v% M5 Y! R; [; v m( _
6.4.1 Distribution 与 Partitioning 的概念* O2 v ?4 g$ q
6.4.2 SparkPlan 的常用分区排序操作
. I$ d/ j( S7 g; g' v7 ^6.5 SparkPlan 生成/ B3 B5 A) R0 i: E8 w4 W
6.5.1 物理计划 Strategy 体系, k8 A0 E3 ?3 @* x V
6.5.2 常见 Strategy 分析
) w5 Z5 X* O: Y- {0 b' w6.6 执行前的准备
( M5 z' \+ h% G6.6.1 PlanSubqueries 规则( R- S! K0 V! r' Z# y: C
6.6.2 EnsureRequirements 规则% ]3 j/ G" [. O
6.7 本章小结
% [. ]' z% L! S" I" d' }第 7 章 Spark SQL 之 Aggregation 实现
- U& \4 `1 D6 B' r m+ q- P; E/ ]8 s7.1 Aggregation 执行概述3 x6 J. G7 S3 ^/ [/ l0 B7 Q0 a2 S
7.1.1 文法定义
1 N) t& X/ p) U8 Q. U; |( x7.1.2 聚合语句 Unresolved LogicalPlan 生成
+ Q0 N1 i# { j: ]: B6 o( j6 Z7.1.3 从逻辑算子树到物理算子树; J4 j, U) G* I* O, v. U
7.2 聚合函数(AggregateFunction)$ }! p' X- H4 Q% a* W: s4 u
7.2.1 聚合缓冲区与聚合模式(AggregateMode)
" W1 X3 H o x6 `& P' l3 U3 {' X8 s7.2.2 DeclarativeAggregate 聚合函数
/ W& b e* H) c7 r- {7 s7.2.3 ImperativeAggregate 聚合函数 [9 b# v0 v# |* e: r+ v
7.2.4 TypedImperativeAggregate 聚合函数. i/ y# L! r6 v4 I3 ~: L2 {
7.3 聚合执行
2 _3 s1 m- F6 p. \ @# I3 {+ K+ G7.3.1 执行框架 AggregationIterator o( t B( ~' ?! q
7.3.2 基于排序的聚合算子 SortAggregateExec
2 b2 ]% T7 e& X( G9 j' U7.3.3 基于 Hash 的聚合算子 HashAggregateExec, n1 W0 w' T7 ?; @3 K( A; W
7.4 窗口(Window)函数
* \1 H% s+ b x1 H1 t7.4.1 窗口函数定义与简介3 W d6 h* z6 t/ A( S# W5 n
7.4.2 窗口函数相关表达式
0 Q8 G; C1 F) I z- ?& H: g$ ^7.4.3 窗口函数的逻辑计划阶段与物理计划阶段
: v3 ^: l( {) k& F7.4.4 窗口函数的执行
' t, u% Z C* V( Y: {, V. V7.5 多维分析7 |* n7 E+ k, U5 f! _" y& b5 _
7.5.1 OLAP 多维分析背景* {( n2 G, t" ^
7.5.2 Spark SQL 多维查询 e- `6 U# H. h m
7.5.3 多维分析 LogicalPlan 阶段
) ~" d7 X+ ?/ Y) V7.5.4 多维分析 PhysicalPlan 与执行% V+ y/ i4 H( }* \+ o k
7.6 本章小结' Q2 ^8 w% \. y) s
第 8 章 Spark SQL 之 Join 实现
3 ]8 d% o! s" V' f( q, ~8.1 Join 查询概述
3 E# t H1 R& R' X9 ?: O w8.2 文法定义与抽象语法树 t% R! o$ r* q5 S+ U
8.3 Join 查询逻辑计划0 V3 I( g- O- i1 B2 L& @5 r
8.3.1 从 AST 到 Unresolved LogicalPlan2 h9 r9 z- D; j( F5 m' X% v# @
8.3.2 从 Unresolve LogicalPlan 到 Analyzed LogicalPlan( p" I; C" h8 b3 D7 ?; L2 X1 ]
8.3.3 从 Analyzed LogicalPlan 到 Optimized LogicalPlan" A5 N7 l+ j9 N2 f" u. @5 s
8.4 Join 查询物理计划
+ B: {, N$ \8 r' J- T- i# y$ N5 o8.4.1 Join 物理计划的生成
! h4 M: P3 I. D0 ]8.4.2 Join 物理计划的选取) F4 J) f9 [3 ^, ?- s
8.5 Join 查询执行
7 ^1 s( k% ?% E* r% |8.5.1 Join 执行基本框架
; ]6 Z3 i$ b1 T3 o; {: u- h8.5.2 BroadcastJoinExec 执行机制6 H( O( Y/ ~# V# `' p% ]1 f
8.5.3 ShuffledHashJoinExec 执行机制3 b# R+ u" x* s1 l+ d. e
8.5.4 SortMergeJoinExec 执行机制
/ N- D$ z( {5 ~7 @6 q8.6 本章小结
3 p2 L0 ^- M! w; {! a/ _( I* P6 _2 t第 9 章 Tungsten 技术实现, i* ~& m- o) K, N
9.1 内存管理与二进制处理
3 G3 p& z# v" a2 C$ K# g9.1.1 Spark 内存管理基础
( L% o& [2 M3 l+ N, H' x9.1.2 Tungsten 内存管理优化基础
: g4 v8 r" o2 x, E" T4 i7 g9.1.3 Tungsten 内存优化应用
. t' p- u u) F$ j/ k% I9.2 缓存敏感计算(Cache-aware computation)8 V6 p G& K L2 C- X! r
9.3 动态代码生成(Code generation)
0 X; j; j: |9 \. v; z9.3.1 漫谈代码生成
4 V# D+ K; M0 j5 H& g5 B! }9.3.2 Janino 编译器实践: P: J7 o$ h5 m
9.3.3 基本(表达式)代码生成
) W: B* H* c( S. Z4 ?% |' ?* I+ k) e9.3.4 全阶段代码生成(WholeStageCodegen). Z( V) P/ ]& S: F" y6 q5 D- I
9.4 本章小结% b% H: T' ^6 m* a+ v7 k
第 10 章 Spark SQL 连接 Hive' A) P: R# q, V% f5 }' G: }0 _
10.1 Spark SQL 连接 Hive 概述
6 g3 m5 |; n# D10.2 Hive 相关的规则和策略( E( T6 b$ P1 ?- { X% M
10.2.1 HiveSessionCatalog 体系
$ d& L( z% S" P- }10.2.2 Analyzer 之 Hive-Specific 分析规则
+ U3 ^0 [$ j# ^& ?: `; s. } S# P10.2.3 SparkPlanner 之 Hive-Specific 转换策略
, }; t2 ?+ e7 K0 R- I0 H10.2.4 Hive 相关的任务执行
2 x8 {) F- \: y6 S) | x4 O' u10.3 Spark SQL 与 Hive 数据类型
' s8 J6 D; W* c+ H& M+ u0 e! [10.3.1 Hive 数据类型与 SerDe 框架. w( u. d, i) }$ \
10.3.2 DataTypeToInspector 与 Data Wrapping7 e8 C# I0 l( Y% }0 A
10.3.3 InspectorToDataType 与 Data Unwrapping4 @% H0 w) B e" N, ^! ~3 l4 g/ E
10.4 Hive UDF 管理机制
% M) O3 P2 p) o0 K10.5 Spark Thrift Server 实现
3 B- K8 A+ y( a# n10.5.1 Service 体系 javazx.com
. H( C: Z/ e9 M$ |# j10.5.2 Operation 与 OperationManager3 D+ V9 o) Z# j6 b. x0 h
10.5.3 Session 与 SessionManager
, M4 P4 |6 C g* U$ r3 L L* d) ~10.5.4 Authentication 安全认证管理
- o4 F5 ~. i1 a9 D10.5.5 Spark Thrift Server 执行流程
& v9 E/ E2 I+ ^0 e" @10.6 本章小结
& j u4 E+ J' L9 G第 11 章 Spark SQL 开发与实践* I, H. j. ?1 ^& t _8 l
11.1 腾讯大数据平台(TDW)简介
( y5 t0 D! W8 A+ A& K5 t$ t11.2 腾讯大数据平台 SQL 引擎(TDW-SQL-Engine)/ {' X# s0 `- A, ]0 W2 J: h; e' c( t
11.2.1 SQL-Engine 背景与演化历程4 u& \( c5 p; j3 `2 `( e8 m) ]/ i, x
11.2.2 SQL-Engine 整体架构
, _% K% O0 u/ n11.3 TDW-Spark SQL 开发与优化$ L2 e9 c/ q. r/ Y: e# V( y
11.3.1 业务运行支撑框架& g8 C8 T; n) A! u' t
11.3.2 新功能开发案例
6 r- z7 i& |6 I2 ^: ]11.3.3 性能优化开发案例
( w4 j3 h a* Y! B6 l11.4 业务实践经验与教训# J, G" T/ [, {3 D
11.4.1 Spark SQL 集群管理的经验4 {2 } G) K7 ^+ @( g
11.4.2 Spark SQL 业务层面调优
7 x8 a' W. w7 D: m11.4.3 SQL 写法的“陷阱”
" m/ c% O' k% D, P2 R11.5 本章小结
; P* f+ p/ J9 G总结
; |- q, K0 U! G4 X' c/ x* a参考文献 ( Z1 }' Y0 J6 R; g
Java资料百度网盘下载地址链接(百度云):Spark SQL内核剖析@www.javazx.com.pdf【密码回帖可见】: P$ O) H1 G* T/ g, z/ N x
! N: v8 p0 e3 p; O3 P+ j3 O0 R9 \8 ?, T
/ J" ~. q5 ]' X4 t. u
0 \7 r5 C% Y) n, X9 a5 f2 U' K3 _' T, A* v! F$ r$ R
9 _2 k# s/ }" s4 P" x Z
|
|