|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《透过源码看懂Flink核心框架的执行流程》9 v) _+ x4 `3 j6 ^% Z
4 r. j( g+ K2 }$ m0 i) X% D
: T9 e+ d2 y. z7 V$ Y- p; s8 |: f1 e. L# k% v
java电子书目录:1.从 Hello,World WordCount开始
7 U- c6 K; y6 A0 l' }1 v1.1 flink执行环境
: `4 B* c, Z. N& `9 {0 G0 x* o8 J1.2 算子(Operator)的注册(声明)
, \: Q8 A+ g2 J1.3 程序的执行2 f) d3 f- o r, X. p; E
1.3.1 本地模式下的execute方法4 f' }4 o# K b2 F1 R8 _
1.3.2 远程模式(RemoteEnvironment)的execute方法2 l& i, B) {3 K9 ~3 o
1.3.3 程序启动过程
+ `8 ~- w6 h# P3 M8 j T2.理解flink的图结构
5 g/ x7 }/ P! D8 Q$ I. }3 P2.1 flink的三层图结构$ i( H9 v w% m3 B+ o. @
2.2 StreamGraph的生成
, e$ x: V( o ~$ m; M4 W) y+ U/ l& X2.2.1 StreamTransformation类代表了流的转换
: w2 u- i- F2 x- `. T2.2.2 StreamGraph生成函数分析
& S+ V" I# V& Y2.2.3 WordCount函数的StreamGraph I2 A) [2 ?* F9 _& n
2.3 JobGraph的生成# F9 z& n+ ?0 i; G% C3 b' ?
2.3.1 JobGraph生成源码
0 N6 @; t. k! l6 R& Q2.3.2 operator chain的逻辑
; s( |; I9 \8 ~0 X( h3 l3 i; U2.3.3 JobGraph的提交( H% h0 h- j; a9 B6 b4 @
2.4 ExecutionGraph的生成4 s4 `- ?. P2 K
3. 任务的调度与执行
( b1 P4 K0 }1 t: c6 @8 |3.1 计算资源的调度, H' g$ G& K& F+ d7 M
3.2 JobManager执行job
( @' y9 T9 D! r2 ]6 [& `* _3 |3.2.1 JobManager的组件
5 l4 d H! g& v1 n3.2.2 JobManager的启动过程: z# r! N, M6 S
3.2.3 JobManager启动Task
( w6 b' Z& @, B- O2 g3.3 TaskManager执行task9 S& L( n, m* U! X/ F
3.3.1 TaskManager的基本组件( P# A5 ~# w" F. N4 y4 O
3.3.2 TaskManager执行Task
- C. j% b* s7 x4 X3.3.2.1 生成Task对象0 e9 w6 ^5 I0 e5 }
3.3.2.2 运行Task对象
- n; N! `/ o8 ^/ k3.3.2.3 StreamTask的执行逻辑* t m6 o7 i1 Z6 k( C$ c
3.4 StreamTask与StreamOperator
# V" q* H# x, A* f4. StreamOperator的抽象与实现* U: t3 z- D$ }
4.1 数据源的逻辑——StreamSource与时间模型
2 ]% w8 `, h4 x7 R* K7 d) q4.2 从数据输入到数据处理——OneInputStreamOperator &
( ?- l0 t5 b6 M* _; wAbstractUdfStreamOperator% K7 a2 r$ W5 {6 M) X
4.3 StreamSink
1 m$ s) K R- c4.4 其他算子/ Q* M9 D) K0 k5 i9 ?5 A
5. 为执行保驾护航——Fault Tolerant与保证Exactly-Once语义4 D* `7 R2 Y. O( X
5.1 Fault Tolerant演进之路% A, m. P) F! P* h* g4 D
5.1.1 Storm的Record acknowledgement模式0 _( D8 Z. K7 o) x
5.1.2 Spark streaming的micro batch模式
8 |; J0 h( Y8 \* Q5.1.3 Google Cloud Dataflow的事务式模型# n" P% @7 m' ~% {( O/ s; q. a# |0 W
5.1.4 Flink的分布式快照机制
7 E% Z, X) u6 U ?% {' j5.2 checkpoint的生命周期& ^1 W* Q) B9 f C- M
5.2.1 触发checkpoint& `( {! l! y g* [
5.2.2 Task层面checkpoint的准备工作
3 \; B* `: N% R+ U% D: r5.2.3 操作符的状态保存及barrier传递$ S* ?* U, W; {) i9 b4 v+ y6 |
5.3 承载checkpoint数据的抽象:State & StateBackend5 C, ?9 j# F1 ?- {/ N3 T! A3 ?
6.数据流转——Flink的数据抽象及数据交换过程
& u9 z, @1 A1 U6.1 flink的数据抽象
+ I* L3 e3 J9 g; V6.1.1 MemorySegment! b$ A; E0 J) i) g6 d, g- v
6.1.2 ByteBuffer与NetworkBufferPool
' e, Z6 }" j. b6.1.3 RecordWriter与Record
: ?; q) R8 M7 M: u8 }6.2 数据流转过程
; r8 a" U2 s: ^6.2.1 整体过程
7 x" C) n F+ ]4 |% \( k, E0 t$ P6.2.2 数据跨task传递
2 q6 P1 |, h) X. o& P6.3 Credit漫谈0 G# W' T3 |4 |% q5 d: |
6.3.1 背压问题' v; M6 c) ^8 v. _$ s M9 M
6.3.2 使用Credit实现ATM网络流控/ z* Q+ p/ h/ r1 |% i4 ?6 }6 `
7.其他核心概念: Z) e9 X) v# B" l
7.1 EventTime时间模型/ A" g2 ^0 f5 U6 ~3 ^5 c
7.2 FLIP-6 部署及处理模型演进
$ w5 w {. G1 E1 t* |, A7.2.1 现有模型不足- d3 \1 H- }0 ]
7.2.2 核心变更* I9 O4 X+ q7 G8 n
7.2.3 Cluster Manager的架构
2 d5 \0 u; D6 U5 l) M7.2.4 组件设计及细节
; I; F" L8 G; T8.后记 % J0 ~+ Q1 P+ E- f" G6 _% |7 Q3 K
& q; T6 T' m& G! s- _3 a. X
! y' c* Q( C9 @8 B
Java资料百度网盘下载地址链接(百度云):透过源码看懂Flink核心框架的执行流程.pdf【密码回帖可见】
# T3 N6 O) M3 T4 G2 v, R- F+ f( X, R# Z& _
6 T; G3 |: {1 e0 B' Q0 ^, ]$ X
: d& N9 |5 m7 a. y. d! C) x6 v1 l' C
" `5 \# q) `: @: k7 N& f8 L- m. ~# U* @
0 Q! U! k7 |" ` \/ t
|
|