|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《透过源码看懂Flink核心框架的执行流程》2 ~6 N. r: ^, S' i
) _' ? Z7 J; o$ ]$ e6 c; \
# G0 h7 m1 [# H% b
& i1 ]: P0 i" y! Z" ?java电子书目录:1.从 Hello,World WordCount开始
! g3 e+ |: f/ o _4 D1.1 flink执行环境. G1 c9 `- c {, G ]/ m
1.2 算子(Operator)的注册(声明)
7 c# r1 I9 y& X% @* g Z& J/ M( `1.3 程序的执行
' ?* o" f3 V/ a! k! F: J* g1.3.1 本地模式下的execute方法
( R" F" v( t2 i+ a- i1.3.2 远程模式(RemoteEnvironment)的execute方法) s8 j& C) x7 C1 t7 D' @4 u
1.3.3 程序启动过程+ ? x( `3 d8 ~3 s! ^; n
2.理解flink的图结构
% l) E T, x8 j) _/ L2.1 flink的三层图结构1 M; h' {1 C0 ^& v
2.2 StreamGraph的生成5 }- N' K" s% K' ]7 g9 E! V
2.2.1 StreamTransformation类代表了流的转换
' w2 d1 @3 z6 v- \' B2.2.2 StreamGraph生成函数分析- W$ V% l$ p, \( p' U+ y& o/ C
2.2.3 WordCount函数的StreamGraph
. u3 e8 k7 v; {2 {2.3 JobGraph的生成! @4 R2 s/ L& q' Y
2.3.1 JobGraph生成源码
]3 ~8 |& W+ A O2 v2 v: _2.3.2 operator chain的逻辑, [! s1 u) t+ y+ o! N
2.3.3 JobGraph的提交
0 l; `) \; c$ f6 D) \* T+ T" z2.4 ExecutionGraph的生成( I/ [' Q5 @/ O0 J1 _$ ?6 A
3. 任务的调度与执行) @4 t- P8 {- t& R2 I9 W+ }" d H3 J
3.1 计算资源的调度1 B3 y8 E( s+ Q* w
3.2 JobManager执行job
) g- w; p* i* e: p+ B7 K B3.2.1 JobManager的组件
( f) @ N0 n+ V6 @. Q2 X, N, H3.2.2 JobManager的启动过程
0 _' h" x5 g: B6 H: q) M" d3.2.3 JobManager启动Task( F4 q- e. e$ H* g$ z9 f
3.3 TaskManager执行task6 ?. J1 x& n' @3 F3 {) F
3.3.1 TaskManager的基本组件* m: k0 w/ K: y9 n" Z: f# Z
3.3.2 TaskManager执行Task
% d% v; ?2 G* n& C" k4 t9 w0 ~7 G3.3.2.1 生成Task对象1 T- F% b, ^0 ~3 y& p
3.3.2.2 运行Task对象
$ @ D3 j3 E2 f6 i3.3.2.3 StreamTask的执行逻辑, w3 s- h4 m( ?3 C" q1 u* W. s9 E& X
3.4 StreamTask与StreamOperator
" l7 P: v' `2 }7 ~6 i4. StreamOperator的抽象与实现
8 O7 ~8 I. A; E+ S% I8 H/ i8 S4.1 数据源的逻辑——StreamSource与时间模型" I! x# ^" x9 w. y# O; I+ V I
4.2 从数据输入到数据处理——OneInputStreamOperator &0 q: \2 x/ F0 _0 u: }6 t
AbstractUdfStreamOperator
$ K1 }- L* `1 I0 C5 B4 t% W; y4.3 StreamSink' t& m" G! h7 v2 ^( o, X
4.4 其他算子' W& ]# i! s) q
5. 为执行保驾护航——Fault Tolerant与保证Exactly-Once语义
9 X, Y! ^7 C d1 o$ |. J! ?9 H+ t5.1 Fault Tolerant演进之路
0 s# l7 |9 t* z3 ?- f5.1.1 Storm的Record acknowledgement模式) c& v$ Q8 D$ C% s$ L3 L" E" k; J
5.1.2 Spark streaming的micro batch模式% k' ]. \' {' Y5 M
5.1.3 Google Cloud Dataflow的事务式模型+ H4 c! Q5 C( _ M
5.1.4 Flink的分布式快照机制9 ?3 Y. Z \7 d# W
5.2 checkpoint的生命周期
9 p) X4 i, A7 m1 q8 j5.2.1 触发checkpoint
$ @9 f B. _0 I+ \1 x5.2.2 Task层面checkpoint的准备工作) `( W4 S9 a0 ?2 a
5.2.3 操作符的状态保存及barrier传递/ ^3 Q4 f( u- N7 ~# h
5.3 承载checkpoint数据的抽象:State & StateBackend
- P/ n. P' N: `! c6.数据流转——Flink的数据抽象及数据交换过程( V! [ v4 c: V, ]4 U" @
6.1 flink的数据抽象# I9 Y! S/ M+ r0 }) ?
6.1.1 MemorySegment
7 Y2 M; _' O( [9 q0 F8 S5 d; T6.1.2 ByteBuffer与NetworkBufferPool
: t& e6 G+ c4 ~* r& J6.1.3 RecordWriter与Record* a U4 Z- n' i
6.2 数据流转过程- c/ I# }4 W( n. l( G1 J
6.2.1 整体过程: d4 D7 ^3 N k- z) k
6.2.2 数据跨task传递
4 C6 n& q% c8 T+ Z; U" E) i6.3 Credit漫谈9 t Y# L/ z: E: i
6.3.1 背压问题
& p9 e/ D- a. _8 d6.3.2 使用Credit实现ATM网络流控; v" u# `7 S4 S8 i
7.其他核心概念" N2 b2 y$ s3 v+ E: z9 f4 F C& y
7.1 EventTime时间模型
6 A* i4 y: a! @" E7.2 FLIP-6 部署及处理模型演进
4 g9 F. x* P) @; ~ c6 ?# v7.2.1 现有模型不足1 [- j- t; g0 o7 ?7 u
7.2.2 核心变更( X% r1 O; I# q# L1 g8 q1 P
7.2.3 Cluster Manager的架构# J, a' v6 v- z" N9 ]8 [: H( {1 J
7.2.4 组件设计及细节5 M8 g0 F+ q9 D' m" S' O
8.后记 Z; J9 r0 G. {4 K: Y1 o" y3 o
_5 \' h6 k$ S5 c/ h
7 k- ?9 W' ^2 k9 K, d
Java资料百度网盘下载地址链接(百度云):透过源码看懂Flink核心框架的执行流程.pdf【密码回帖可见】' v, D A8 P9 `, e3 q
( w5 l+ A2 S9 I* m
8 n* G1 `- G- ^) p. W
7 l; @( |/ I' J% S9 Z5 e8 ]7 B# A" u
! O/ l; |& D7 K
) Z3 n* A7 ^/ j' b0 d
( s: y/ M$ d1 _# w0 R |
|