|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《透过源码看懂Flink核心框架的执行流程》+ u5 n" G' v; S* {6 u% p
0 t0 I% b; Z' I; o! G8 T
' o/ c! \* ]8 \, M Z C! G
3 J2 ]$ b( D1 \- M! b& _) [java电子书目录:1.从 Hello,World WordCount开始
( A5 E7 I C8 ^" ]& t1.1 flink执行环境8 ]( u8 D' u2 m) ~5 o7 b
1.2 算子(Operator)的注册(声明)" P& D) O: p! ?( A0 e" E8 u$ a
1.3 程序的执行
) @3 Y" R9 C m/ B2 v3 ?& U- F1.3.1 本地模式下的execute方法1 z& m3 X9 e- K9 V
1.3.2 远程模式(RemoteEnvironment)的execute方法
: J( m5 x: L% `. c) P U ^1.3.3 程序启动过程
* a4 r1 Z' n" m: W' e/ A2.理解flink的图结构
9 v' L9 _5 B1 K8 U6 {% l2.1 flink的三层图结构% {2 N& l7 F' @7 k9 q0 s2 l) Q6 _' Q
2.2 StreamGraph的生成
, O9 K3 V# |: F4 u2.2.1 StreamTransformation类代表了流的转换% \$ V9 E+ T+ L' N( @# J t2 A
2.2.2 StreamGraph生成函数分析
$ t* |7 K& Z$ C0 N; M7 @5 e, B& P2.2.3 WordCount函数的StreamGraph2 Z' l( q1 x, H1 A
2.3 JobGraph的生成
) G. S6 E. Q9 p3 s' T5 A) m7 q/ S' v. R2.3.1 JobGraph生成源码
0 _) Q( |9 D2 n3 I- E8 M* ]2.3.2 operator chain的逻辑% _. M/ R. }- O8 }3 x
2.3.3 JobGraph的提交
0 R$ U" X( x+ W! @, N+ {2.4 ExecutionGraph的生成
- n i' I* K+ i* [2 E- I3. 任务的调度与执行
; p+ r4 c r. _" }! q) r3.1 计算资源的调度+ A( Y' s1 X# M& v+ `) R1 G
3.2 JobManager执行job
, I. c# j6 E2 }4 H! w3.2.1 JobManager的组件. h( `+ Y' U/ b9 D5 M# F2 k
3.2.2 JobManager的启动过程/ M o# q& o; P/ t
3.2.3 JobManager启动Task
( o1 U* L2 ?0 z! q* b3 _! j8 m3.3 TaskManager执行task! c. Y) \, ]( z* a
3.3.1 TaskManager的基本组件4 U4 s2 S5 X( X3 Y5 \( d: f
3.3.2 TaskManager执行Task& L* C# Y- S4 n: |9 r* Q
3.3.2.1 生成Task对象
. L3 P( {% C4 B9 Q8 e+ G7 c3.3.2.2 运行Task对象5 N- I: ?3 _% y3 E
3.3.2.3 StreamTask的执行逻辑! k! i2 L1 w& j0 w" A# y
3.4 StreamTask与StreamOperator
. b7 n" Y" L, E4 ~- e# [% q4. StreamOperator的抽象与实现# M& Z3 ]6 ?& ^! W1 y/ J0 S
4.1 数据源的逻辑——StreamSource与时间模型
8 J/ {+ `6 }" z- E4.2 从数据输入到数据处理——OneInputStreamOperator &
+ N) x! `. @$ a4 AAbstractUdfStreamOperator
6 Q1 T: _" h6 N3 e) S' f/ y# u4.3 StreamSink
- O" Z, i, M$ ?; Y$ h: C2 q: ^4.4 其他算子
1 n9 c; N0 A0 d# ~! f- d- d5. 为执行保驾护航——Fault Tolerant与保证Exactly-Once语义: H4 W- j# l1 Q9 \
5.1 Fault Tolerant演进之路
% H+ Z! o; E7 I- q9 p4 M5.1.1 Storm的Record acknowledgement模式
, r$ @& U. M" N% v6 A; S5.1.2 Spark streaming的micro batch模式+ D F( t9 S1 l6 E1 w
5.1.3 Google Cloud Dataflow的事务式模型& @. D' k! i7 l& g1 k# C* ~0 i
5.1.4 Flink的分布式快照机制+ y& Z V$ `+ d7 A
5.2 checkpoint的生命周期
' [5 |$ {) J3 [. c' j/ k5.2.1 触发checkpoint
: s1 a, B" A$ U1 k' b6 e5.2.2 Task层面checkpoint的准备工作$ s; [6 s% @0 ]* y% t3 s' G
5.2.3 操作符的状态保存及barrier传递
$ w- g7 n# O' P1 _5 q0 n' P8 z5.3 承载checkpoint数据的抽象:State & StateBackend* J; ^4 d% A1 q6 X/ T# Z. r7 R$ j
6.数据流转——Flink的数据抽象及数据交换过程& R% `1 G$ i6 Z/ c
6.1 flink的数据抽象
5 [5 d- J- V3 w' ]6 z( R( X6.1.1 MemorySegment5 C% {# N2 p5 v5 m$ s3 `/ b% Y. Q" [
6.1.2 ByteBuffer与NetworkBufferPool( A% T) d7 m% |+ H3 u
6.1.3 RecordWriter与Record$ I# M4 h) y1 E; { }, d
6.2 数据流转过程' l) p. F1 h* F! V+ q
6.2.1 整体过程5 w/ }/ ^/ u' F9 F5 j7 m. D
6.2.2 数据跨task传递* f" X6 ] m+ Q7 V
6.3 Credit漫谈1 C0 L; h, q/ x' b( {8 C( }( Q+ P
6.3.1 背压问题3 H u: ?2 G& [3 `; M
6.3.2 使用Credit实现ATM网络流控
6 H: ?( {+ e6 r2 p1 K7.其他核心概念
% B2 p' E( l0 h7.1 EventTime时间模型2 ]9 z% z( d/ ~& I: K1 v
7.2 FLIP-6 部署及处理模型演进6 j2 r. \2 V7 P
7.2.1 现有模型不足- S$ S6 ^( ^' C" m `
7.2.2 核心变更
2 ^2 }9 ~2 e# _7.2.3 Cluster Manager的架构
8 G, V$ K. c. Q$ ~, x7.2.4 组件设计及细节
2 Z- n- v! |& W0 l8.后记 , F2 ^' h$ Y) d
N0 x, t i9 L$ B* f: C
: M% l* W" T1 }* fJava资料百度网盘下载地址链接(百度云):透过源码看懂Flink核心框架的执行流程.pdf【密码回帖可见】
6 `' g5 O6 ~9 I$ l8 T! P! n
( c- p, ]2 u# K9 J X+ n2 r. _2 L& c2 G& }
8 k1 W: d- ^) {$ Y2 U) M
% \1 @% |- e1 ?3 b9 J2 R
- N( @9 U3 x, ?9 @
- L* M/ K# k" H& K+ Y/ B; |1 f, A$ Z& M5 {. b* {
|
|