|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《Spark SQL内核剖析》2 _9 h, f# h' e) J9 v3 ]& S
java电子书推荐理由: 经过多年的发展,大数据处理技术逐步成熟。作为业界大数据计算的事实标准,Apache Spark系统已经广泛应用于各大企业与研究机构,并形成完整的生态系统。Spark系统包含了SQL、GraphX和R等各个子系统以支持不同业务领域的需求。作为传统关系数据库/数据仓库在大数据场景下的解决方案,Spark SQL已经成为了业界的重要选择方案,同时也成为了Spark开源社区中*为活跃的部分。本书聚焦于Spark SQL系统,对其整体架构、内部各个模块的技术实现机制进行源码级别的剖析,涉及到SQL编译、逻辑计划、物理执行计划、重要查询(如Aggregation与Join等)的技术细节。此外,本书内容上还会结合生产环境的海量应用,分享大量真实开发案例与实践优化经验
$ ]: i' G5 a! y' J' A2 v- ~: u* }5 o. g5 O7 w+ `5 c) l' ]
作者:朱锋4 h8 v5 X! l3 ?; f
出版社:电子工业出版社
! V( I, E" N7 p1 j8 i出版时间:2018年08月
# S, l% ~* ]3 e: x1 |书籍价格:69.0元
- g- h" _7 l9 O/ M0 \7 q
6 u# s$ Y e& s. h4 R& ~! N2 @
) p% P" h6 _& f; T1 M( f! B% |" }0 f. N0 ^. w4 ~, w* I# q j
java电子书目录:
: n1 n% h5 K$ P第 1 章 Spark SQL 背景
1 a, P! Q! @! e$ n, i! ^! ~1.1 大数据与 Spark 系统
5 R; b4 F6 v. y* }% k0 W' H1.2 关系模型与 SQL 语言# \0 L5 G7 t* t; V& U: \7 O9 t
1.3 Spark SQL 发展历程# n+ u& k9 w+ t
1.4 本章小结
" {) p" y K9 V: a$ W) j第 2 章 Spark 基础知识介绍, x" n1 T s% {- T+ P6 r, ^
2.1 RDD 编程模型; P7 I# d+ J* x) t% F
2.2 DataFrame 与 Dataset
! j- l' N' s! ]) Y2.3 本章小结1 i8 n' @2 o6 g4 L7 x/ E) R3 J7 F0 H
第 3 章 Spark SQL 执行全过程概述
: K1 ]( W1 w* B% M2 X3.1 从 SQL 到 RDD:一个简单的案例6 t" `8 R) }+ P
3.2 重要概念
, }& f0 I) N3 q: z: Q" F. u( q3.2.1 InternalRow 体系: k' {" K2 r, s3 y
3.2.2 TreeNode 体系0 M4 |# a) g, x$ @) v) S+ g1 y
3.2.3 Expression 体系
7 h. K0 X5 i7 s# m" v# O' R3.3 内部数据类型系统" H1 D$ l" X9 f5 y7 V+ S5 V
3.4 本章小结
6 o, e1 i' ?6 t7 O9 W$ X3 h第 4 章 Spark SQL 编译器 Parser
- Y. [- y, ]! _, y( Y4.1 DSL 工具之 ANTLR 简介
6 M6 Q# a3 c8 h( K/ a4.1.1 基于 ANTLR 4 的计算器* _2 m9 Q! W& R- ~, G
4.1.2 访问者模式
+ R: E! p' V5 P6 ^4.2 SparkSqlParser 之 AstBuilder
: ]" k" i6 F! E3 J/ U4.3 常见 SQL 生成的抽象语法树概览
X' a# e& J) @; E4 T* l& H4.4 本章小结
4 R' T+ f# s7 G9 k- I/ Z7 ]第 5 章 Spark SQL 逻辑计划(LogicalPlan)/ O( Z \8 T6 w9 J' A! z
5.1 Spark SQL 逻辑计划概述
" c' W% q+ E- X: ~" r5.2 LogicalPlan 简介) l! e8 q/ `0 A% A& U
5.2.1 QueryPlan 概述9 z; |" q/ g7 y2 ?, G# A
5.2.2 LogicalPlan 基本操作与分类0 D9 Q( `+ |1 ?9 P# n
5.2.3 LeafNode 类型的 LogicalPlan2 B. J1 k& `: w) T; i3 t2 x
5.2.4 UnaryNode 类型的 LogicalPlan
7 v9 Q- b S- U( ]+ J2 ~3 \& x% I# u5.2.5 BinaryNode 类型的 LogicalPlan
- \8 [4 B6 C! O0 M+ N5.2.6 其他类型的 LogicalPlan2 K9 K( t: L; _: E
5.3 AstBuilder 机制:Unresolved LogicalPlan 生成
' I1 x: M4 K' R1 l5.4 Analyzer 机制:Analyzed LogicalPlan 生成
: {. l2 Q* _3 Q5.4.1 Catalog 体系分析
. `' u+ p1 L7 }' x/ ~+ e$ b: f9 b5.4.2 Rule 体系
9 @/ K M5 B1 ~9 x1 t6 c5.4.3 Analyzed LogicalPlan 生成过程
9 V3 H' i" G9 W0 }6 `6 @5.5 Spark SQL 优化器 Optimizer
6 s! c2 y2 s$ X$ p# ^& o4 E* b5.5.1 Optimizer 概述
, h$ J& M# P( W" w5.5.2 Optimizer 规则体系
! _4 y* W8 \) b6 A5.5.3 Optimized LogicalPlan 的生成过程1 V3 d1 e7 k% Z9 b8 e* I/ Y8 u
5.6 本章小结0 C6 }! x S( B$ |7 D0 r( O( F
第 6 章 Spark SQL 物理计划(PhysicalPlan)
- { I) W1 h+ l1 d7 D7 `6.1 Spark SQL 物理计划概述! r3 G8 i- i2 W9 F5 u+ _- P8 k
6.2 SparkPlan 简介! _- M2 B G% L; b+ A2 q! a& W
6.2.1 LeafExecNode 类型
6 U U9 m- W$ d8 ^6.2.2 UnaryExecNode 类型
7 O9 |/ \% F8 c6.2.3 BinaryExecNode 类型
s( ^( R: j1 q. a6.2.4 其他类型的 SparkPlan% ^( h0 f3 s, L, S1 x
6.3 Metadata 与 Metrics 体系
- n7 r( [1 @: o! i' M/ i, W; p6.4 Partitioning 与 Ordering 体系 Z( F$ g) W% K- |9 O1 U, O
6.4.1 Distribution 与 Partitioning 的概念( q% ?3 T t9 B& s
6.4.2 SparkPlan 的常用分区排序操作
/ L' z, k( [. P2 k" D, z3 x6.5 SparkPlan 生成
8 X0 I' w" c2 ~- Y" A% ?6.5.1 物理计划 Strategy 体系! U5 @5 R+ q; @% ~, f" U
6.5.2 常见 Strategy 分析 u3 r. Y$ g3 y
6.6 执行前的准备
6 |4 @. b: C+ @( Y6 u( L# w6.6.1 PlanSubqueries 规则9 N) F; o# J/ g& j: H
6.6.2 EnsureRequirements 规则
0 _* j2 N) z; a4 }1 _6.7 本章小结
( {( C+ c/ N' r: ?0 u第 7 章 Spark SQL 之 Aggregation 实现
5 {8 O. J @& X) q& Y/ S* I7.1 Aggregation 执行概述
0 b+ C6 ~" q# F9 h2 L! X- x5 N7.1.1 文法定义
: s1 L6 u2 b9 r7.1.2 聚合语句 Unresolved LogicalPlan 生成
, A6 h" P1 E: U1 k$ d; C8 G7.1.3 从逻辑算子树到物理算子树" B" |1 \/ }# f/ L( Z: p) V
7.2 聚合函数(AggregateFunction)
) Q* s1 B) q. q1 c, P! B o7.2.1 聚合缓冲区与聚合模式(AggregateMode)4 D7 X' Z' O! A6 e
7.2.2 DeclarativeAggregate 聚合函数4 z' ~. C1 b8 |; X( x' n
7.2.3 ImperativeAggregate 聚合函数
' d8 ]0 g1 c; b1 w7.2.4 TypedImperativeAggregate 聚合函数4 `" l9 z# R/ [ r5 X4 p+ N
7.3 聚合执行$ c1 H# H! B! M* M9 m6 P
7.3.1 执行框架 AggregationIterator. W/ \" q/ E( ]
7.3.2 基于排序的聚合算子 SortAggregateExec
8 C% h2 n1 U/ @& N7.3.3 基于 Hash 的聚合算子 HashAggregateExec
6 F6 m8 v, z- P7.4 窗口(Window)函数
. w9 j B5 r) w) l; \5 Y9 `1 X7.4.1 窗口函数定义与简介
0 o( `3 u' N! p( e3 r" J1 f7.4.2 窗口函数相关表达式
$ L% D" h4 \; n2 r0 \6 j3 ]# W7.4.3 窗口函数的逻辑计划阶段与物理计划阶段
4 L. [8 ~3 U$ g5 i7.4.4 窗口函数的执行& A h" @, _ l- r) d9 m$ a/ a; i
7.5 多维分析4 z+ C8 M' w$ \$ F' H
7.5.1 OLAP 多维分析背景
; J' m# K3 t" y/ ^7 F/ K7.5.2 Spark SQL 多维查询
! x) R$ F9 D9 Y7.5.3 多维分析 LogicalPlan 阶段/ G, |8 u& P; u5 |- K
7.5.4 多维分析 PhysicalPlan 与执行
3 u# } B4 A* _9 c7.6 本章小结
. @- P5 X, O0 [0 i第 8 章 Spark SQL 之 Join 实现% s4 t( @3 z/ ]
8.1 Join 查询概述! ~$ C& R- d) `2 j, y
8.2 文法定义与抽象语法树: |' `' d& U) J% n
8.3 Join 查询逻辑计划8 P, I. E9 {) i' C
8.3.1 从 AST 到 Unresolved LogicalPlan
9 I9 a* I7 n0 g2 ] _8.3.2 从 Unresolve LogicalPlan 到 Analyzed LogicalPlan3 q# S( H' d1 {
8.3.3 从 Analyzed LogicalPlan 到 Optimized LogicalPlan
& J6 d3 b. G9 h8.4 Join 查询物理计划
; r7 x( p/ @) x I& ~" K# t8.4.1 Join 物理计划的生成) ^- \8 }( F/ y) l3 w
8.4.2 Join 物理计划的选取$ c6 |" v6 h' A$ D8 e
8.5 Join 查询执行
" Y$ m" w) ` ^ ~8.5.1 Join 执行基本框架1 a# o& B2 p0 N
8.5.2 BroadcastJoinExec 执行机制, I, W5 [" n+ n
8.5.3 ShuffledHashJoinExec 执行机制$ u) E2 O( K; @1 T, ^6 m1 u! f
8.5.4 SortMergeJoinExec 执行机制% h3 i3 H" q* u6 @8 ~ G" [1 x( A
8.6 本章小结) j) z0 M3 y% |9 v
第 9 章 Tungsten 技术实现
+ p# X4 R" t. c9.1 内存管理与二进制处理7 Y" ~: R( Q& x0 S$ ^7 E% V
9.1.1 Spark 内存管理基础
! S, B) v# K8 q Q9.1.2 Tungsten 内存管理优化基础! {# c" `7 a6 Y5 w f8 ]
9.1.3 Tungsten 内存优化应用
: N1 J) G5 C$ }9.2 缓存敏感计算(Cache-aware computation)
1 M7 B* n- |5 g9.3 动态代码生成(Code generation)
; {4 J( y3 u& ~- n0 ~* y0 \9.3.1 漫谈代码生成
$ L* C3 P6 ~; p) @( t9.3.2 Janino 编译器实践 G; h' g* f. W0 K" x+ B
9.3.3 基本(表达式)代码生成) q! l3 @" ^3 O, P, s. @/ u* N+ E
9.3.4 全阶段代码生成(WholeStageCodegen)
: d$ A F+ P' B0 |9.4 本章小结
" ~8 y. @# E1 J! Y* g第 10 章 Spark SQL 连接 Hive
0 ~ J! `( l/ P2 i10.1 Spark SQL 连接 Hive 概述
h7 Z5 K6 {- R- ]10.2 Hive 相关的规则和策略2 `5 h) P% o# g% r4 C/ U
10.2.1 HiveSessionCatalog 体系
7 A' ?1 |; s, y& J10.2.2 Analyzer 之 Hive-Specific 分析规则
/ A% B$ G6 Z) R/ o5 U( I" T10.2.3 SparkPlanner 之 Hive-Specific 转换策略
+ Q# H8 F2 q1 r' h* D% R$ b10.2.4 Hive 相关的任务执行 v2 C8 q$ s x+ U& R' M
10.3 Spark SQL 与 Hive 数据类型
& s( ^' o+ o% o! n: L10.3.1 Hive 数据类型与 SerDe 框架; n4 \: Q$ ]# N& S. Q2 a
10.3.2 DataTypeToInspector 与 Data Wrapping
' B# c& D1 D( W9 I10.3.3 InspectorToDataType 与 Data Unwrapping$ o% M% Q9 b- s4 }
10.4 Hive UDF 管理机制
! Q1 r7 {+ g% f1 a2 D7 J10.5 Spark Thrift Server 实现- J/ V0 U# T5 M: ?" h6 w5 S
10.5.1 Service 体系 javazx.com& N1 m5 W; ?7 t6 ^
10.5.2 Operation 与 OperationManager
/ V6 |, v8 Q X8 _, l& w10.5.3 Session 与 SessionManager- h* z3 {7 U9 r6 y- N; q
10.5.4 Authentication 安全认证管理+ P- z5 ?! O' Q; y2 m
10.5.5 Spark Thrift Server 执行流程8 e4 |! i+ q7 L( ~% N; s' w8 Z
10.6 本章小结. Z4 k' X$ b0 f9 b
第 11 章 Spark SQL 开发与实践
& P0 d w6 O9 a+ y$ Z11.1 腾讯大数据平台(TDW)简介
/ M! L. ]/ y9 W. x" a* x. v" |* [11.2 腾讯大数据平台 SQL 引擎(TDW-SQL-Engine) z3 |1 K5 t# c% d: f) n- N1 w
11.2.1 SQL-Engine 背景与演化历程( u( k/ [8 Y; Z+ s: q. o
11.2.2 SQL-Engine 整体架构
2 R5 i0 | U/ e k$ W" [9 `11.3 TDW-Spark SQL 开发与优化
5 f: D' L" u' S% Q11.3.1 业务运行支撑框架; {& q0 [3 L+ u; U4 @
11.3.2 新功能开发案例 _% R$ R- q% J/ I+ b$ p6 t+ K4 b
11.3.3 性能优化开发案例 h2 H& ]- t+ U W9 A. n9 T9 m4 M
11.4 业务实践经验与教训
9 v( q, Q' b( D8 A2 T/ \9 E11.4.1 Spark SQL 集群管理的经验1 c: t) `$ q ~3 g4 ^! _
11.4.2 Spark SQL 业务层面调优
( b! z0 W+ b' w& ~1 n1 R, n1 _11.4.3 SQL 写法的“陷阱”
% U+ s# R( H( {. n/ o2 G+ @11.5 本章小结
. c, J ]5 a+ x总结
0 N$ w2 X! W4 ?9 }& D1 s; v参考文献
/ E; U3 p: Z4 Y1 C1 tJava资料百度网盘下载地址链接(百度云):Spark SQL内核剖析@www.javazx.com.pdf【密码回帖可见】
7 S- M4 \6 }2 |$ f+ w& Z, D6 [! t7 I# u
; m. Z$ O- \5 ~6 R4 P! F/ b1 y. I4 O3 T
/ r/ f/ \. g2 D) ^( x; r7 w0 w" o6 |6 K% L* E
& I$ `- [" s% o" {4 |! q _, d
|
|