|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《透过源码看懂Flink核心框架的执行流程》
% L/ E. v, K+ q s n
6 L! }4 |: Q9 ^, K4 H
. _& T6 e+ f3 `2 Y O' R
F, C, N" w {$ N+ u) p
java电子书目录:1.从 Hello,World WordCount开始
( n& U* A4 T' ^- I( @1.1 flink执行环境
' Z5 M% v) D2 G, b1.2 算子(Operator)的注册(声明)- F8 e- `, u. h( N, T
1.3 程序的执行( X6 ]" j) `- V
1.3.1 本地模式下的execute方法1 O' X* K7 U! Q* c8 M( P
1.3.2 远程模式(RemoteEnvironment)的execute方法* ^, ^# d, ~. W5 H
1.3.3 程序启动过程
" u" W( F8 w! o M7 u, H2.理解flink的图结构
+ k, j) s3 Y$ N+ W2.1 flink的三层图结构
8 @: }; O% R7 q, f2 u' H2.2 StreamGraph的生成8 y: Z& {6 u5 u- G% u
2.2.1 StreamTransformation类代表了流的转换# _7 m# W5 j H5 U
2.2.2 StreamGraph生成函数分析
$ r2 T+ x) ^6 K7 F2.2.3 WordCount函数的StreamGraph
9 r+ t0 I0 ~& W- }. n& ?# P3 k# B4 | h2.3 JobGraph的生成
* o% G6 ~7 z" r5 j2.3.1 JobGraph生成源码5 O/ S5 i& W5 ^! \- k
2.3.2 operator chain的逻辑
3 ]7 b0 _6 i4 M0 s2.3.3 JobGraph的提交
% C) f& W X2 I4 m2.4 ExecutionGraph的生成/ n1 r2 K: M. {- H, g0 G9 s
3. 任务的调度与执行
" V1 @+ ]7 Z6 v0 `& e) I3.1 计算资源的调度 n: G) V9 q6 Q" V
3.2 JobManager执行job
% K! o5 ~3 S1 C3 p ]2 u3.2.1 JobManager的组件8 B$ J9 u1 a3 J9 F6 n0 G
3.2.2 JobManager的启动过程
! @- ?% l/ O" R9 ?7 P2 p3.2.3 JobManager启动Task
! K3 |- V8 \, i( f3.3 TaskManager执行task
9 Z# Z+ }1 @0 @$ U* a5 m4 [3.3.1 TaskManager的基本组件: [% u2 d: A% l6 J8 w
3.3.2 TaskManager执行Task
) _4 H7 z3 E6 h) x; |; Q& Y3.3.2.1 生成Task对象
" B# R" J; J8 |8 j. Q- ~7 C3.3.2.2 运行Task对象$ s4 O' @- c9 Z; G3 \: Z/ u" Z" ?8 ~
3.3.2.3 StreamTask的执行逻辑8 j: B+ [ n7 _0 Q
3.4 StreamTask与StreamOperator
1 L% C& Q4 A4 Q6 G: g% }* a1 X' M1 L4. StreamOperator的抽象与实现
4 \4 a" i% I" j7 u0 E7 v' y4.1 数据源的逻辑——StreamSource与时间模型$ J: I" J2 e% ^7 P
4.2 从数据输入到数据处理——OneInputStreamOperator &$ Z+ M! ?6 g4 z: x9 n1 `
AbstractUdfStreamOperator
: C$ S. G# Q+ X8 G4.3 StreamSink+ y; [& M O, A
4.4 其他算子- G: x1 S2 B" R2 o9 i) Y# l
5. 为执行保驾护航——Fault Tolerant与保证Exactly-Once语义
+ A# v/ |( K, W" y/ {" p5.1 Fault Tolerant演进之路0 R# X0 I" I9 H
5.1.1 Storm的Record acknowledgement模式
0 a1 U. G7 B! U, g5.1.2 Spark streaming的micro batch模式
! A' y- O! G) u0 k# f2 R5.1.3 Google Cloud Dataflow的事务式模型 V5 `/ I, _- f5 j" X
5.1.4 Flink的分布式快照机制
0 m& q! {( P: E. g+ Y! J; G1 P. T5.2 checkpoint的生命周期9 k Z! P1 N: w* Z4 x
5.2.1 触发checkpoint
! ?) Y" {# g6 s" d' d& ]5.2.2 Task层面checkpoint的准备工作* R9 P& u4 [$ U8 x* P+ z6 W
5.2.3 操作符的状态保存及barrier传递
4 `& j5 h) i5 A9 q6 p- g) o* N! x5.3 承载checkpoint数据的抽象:State & StateBackend
2 f) Y! |: B* r) S6.数据流转——Flink的数据抽象及数据交换过程
3 Y/ F# c) ]& O9 a$ E6.1 flink的数据抽象
2 T) }9 Q) x4 H* G6.1.1 MemorySegment! ~ V2 V! o* D7 Q3 l1 c
6.1.2 ByteBuffer与NetworkBufferPool
) {0 U! s5 S9 ]8 ^: O( i: _+ \' i# J) n6.1.3 RecordWriter与Record- A2 [& S e% O9 @0 _
6.2 数据流转过程/ ?4 F" w, k9 ^# z. s
6.2.1 整体过程
/ e9 ?! A5 h, }- h, O& b5 \6.2.2 数据跨task传递
& F$ y) X3 V$ ?4 _6.3 Credit漫谈
( [- \# N+ x9 w a- }! l9 b6.3.1 背压问题, k8 S+ `0 z9 x& D6 S, F- d
6.3.2 使用Credit实现ATM网络流控2 z/ g3 F4 \/ y7 k6 Z& B
7.其他核心概念3 m8 `, B2 J! w U& z: T- w; N4 H
7.1 EventTime时间模型
1 J% g3 }; t$ w) h, ?2 Y4 |7.2 FLIP-6 部署及处理模型演进2 k% z4 \, A# E& L% i3 N8 v% r9 j/ B
7.2.1 现有模型不足7 H( P7 n7 Y- u5 |
7.2.2 核心变更2 \$ g) N- G: G: Z$ c0 F6 n
7.2.3 Cluster Manager的架构
0 a. I& p; D, P: h ]. x/ r1 a7.2.4 组件设计及细节
" w- u: B5 @7 b) q- N l" p. m1 Q0 Z+ U8.后记
' p/ [( z/ }2 v, \ 8 e+ I8 d* M) x! [
' K* O9 P! h( L1 a: t- R2 F
Java资料百度网盘下载地址链接(百度云):透过源码看懂Flink核心框架的执行流程.pdf【密码回帖可见】
5 B, x" e. F9 z. }4 [* m3 M0 ?/ @( @- k+ i+ g" a/ S. n5 d! R
E$ q* K/ m- y) l% v
7 O+ X6 A4 F/ n/ V; |
2 U1 h, k/ j$ O y
" J% V; r0 j5 c" J- ?2 T! G7 p7 P+ l4 i$ O/ \" _9 m
2 h8 e% B# N7 a( q1 Y o
|
|