|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《透过源码看懂Flink核心框架的执行流程》
; G, h4 v% h* t) [7 Y
+ }: P" b o% y! L }& u
) O" s# o$ R, d& V, o
# R% G* Q6 C$ }7 A7 ^% tjava电子书目录:1.从 Hello,World WordCount开始
$ \* u) R' j, S" j8 E+ }: @* J6 E1.1 flink执行环境
9 {) H! Q3 S* o! }9 ^% R) `. V7 q1.2 算子(Operator)的注册(声明)# y3 J1 F& I9 v0 y, H8 t" J
1.3 程序的执行% G, g; s8 G4 [6 q$ w
1.3.1 本地模式下的execute方法
& g: R* z9 B/ q: J H4 W2 {1.3.2 远程模式(RemoteEnvironment)的execute方法% f8 _& q7 Z! `
1.3.3 程序启动过程
" o. E( p) ]' @6 {8 w6 ]( U0 Q2.理解flink的图结构
. V% w7 [: z9 B! m0 g- N2.1 flink的三层图结构
/ }" y4 g1 z% A6 s9 I, w2.2 StreamGraph的生成* ] ~* @: T6 ]* _6 E
2.2.1 StreamTransformation类代表了流的转换
* A* j& w' C- p; O3 C2.2.2 StreamGraph生成函数分析
2 v5 S' n/ V% {2 A2.2.3 WordCount函数的StreamGraph
{1 }# r. d9 u j3 D$ q# \: j2.3 JobGraph的生成! e$ v: X! z. G2 b# p" u' ]+ p1 _
2.3.1 JobGraph生成源码) K% v- @+ P7 D! X2 O
2.3.2 operator chain的逻辑( ]6 r* y8 U5 v
2.3.3 JobGraph的提交2 ^1 i3 N# D' K4 ]5 p, Y) ?
2.4 ExecutionGraph的生成
$ A; }( k- @2 }0 ?5 @ o3. 任务的调度与执行
4 s' x6 \7 a+ t$ ^6 s( ?" M3.1 计算资源的调度4 S2 M( o( h! b* q3 J
3.2 JobManager执行job
2 I1 \" F0 Y" d* i5 V' H4 Y3.2.1 JobManager的组件
+ D3 j" I1 @1 ^. W2 l. h3.2.2 JobManager的启动过程! |* Y. {% f- l/ {: o- F3 @3 U3 x
3.2.3 JobManager启动Task) O% H( \! V5 S
3.3 TaskManager执行task; r/ s6 @! j- V2 m" h3 ~' J% m
3.3.1 TaskManager的基本组件
( i* A& r1 q0 Y6 @3.3.2 TaskManager执行Task
5 Q% X1 q# X( D- B+ }, R- D9 z4 o+ ]3.3.2.1 生成Task对象. \6 r+ m; G* J3 y5 S8 P4 Q
3.3.2.2 运行Task对象+ c! n9 C. u: w- o4 |
3.3.2.3 StreamTask的执行逻辑
+ o( l9 Y; T& R/ d* ^- U3 U! k3.4 StreamTask与StreamOperator% _ J" _4 j3 G' i2 L
4. StreamOperator的抽象与实现9 _3 s0 s; V# J$ a7 p
4.1 数据源的逻辑——StreamSource与时间模型5 k7 N) b) Q* v7 W2 K4 v3 N. K
4.2 从数据输入到数据处理——OneInputStreamOperator &
2 V( C- o' z* V+ z# JAbstractUdfStreamOperator
3 a; U4 t" C0 }* R9 h4.3 StreamSink
$ v6 P8 S0 @8 J0 ^8 R& H6 P4.4 其他算子
- C6 N; O% ]5 ^ b8 ^+ V6 z9 h( p0 F5. 为执行保驾护航——Fault Tolerant与保证Exactly-Once语义
- r& b" A* w8 t% p, X: l( {% F5.1 Fault Tolerant演进之路
% e3 P' A9 v% K8 l+ R- p5.1.1 Storm的Record acknowledgement模式8 n S d* N. w) K( q1 L
5.1.2 Spark streaming的micro batch模式
4 N; O3 `* H7 ?8 Q5 T5.1.3 Google Cloud Dataflow的事务式模型
. n' C3 W p) F" `5.1.4 Flink的分布式快照机制
. S, K& ]3 [; J. ^6 @4 X2 [2 W) \5.2 checkpoint的生命周期 g, v r0 y/ x; H% K
5.2.1 触发checkpoint
. [) f% p5 j0 \. O5.2.2 Task层面checkpoint的准备工作
# x; C# H- R" t6 G( L' r5.2.3 操作符的状态保存及barrier传递( e! w, w; M: _" W
5.3 承载checkpoint数据的抽象:State & StateBackend
0 _. E6 L+ u" o2 y6.数据流转——Flink的数据抽象及数据交换过程
% D, C) X; b# \! |1 k$ k" c6.1 flink的数据抽象& A0 c: i1 l u$ Y5 h. ?1 f0 g
6.1.1 MemorySegment, K- n. Z; y$ d( C$ v
6.1.2 ByteBuffer与NetworkBufferPool
: K4 d3 c4 Z& a7 n |, @2 h7 k6.1.3 RecordWriter与Record6 e& G+ w7 D0 z% s1 x
6.2 数据流转过程
4 b2 X) N+ H& g7 y( l6.2.1 整体过程% a8 S" l% F6 |! m& d0 B
6.2.2 数据跨task传递5 K& C l3 y) U, V
6.3 Credit漫谈, l, K# i& M6 ]+ |4 |$ ?; l2 ^
6.3.1 背压问题
$ i$ z# j% o( ^0 n& o0 }0 j+ U7 I0 j6 F6.3.2 使用Credit实现ATM网络流控
2 u( O' b0 [6 u& b/ g7.其他核心概念' O* \$ N. d4 ?# b6 \& i
7.1 EventTime时间模型
5 r8 G6 b% }4 E' ~$ x3 V# L7.2 FLIP-6 部署及处理模型演进, C7 ?% L+ u4 h# Y
7.2.1 现有模型不足: A& B z; b$ w* L" K1 s! [
7.2.2 核心变更& K, ]! `' X. v! J1 \
7.2.3 Cluster Manager的架构
5 X; T' m2 m' O* x# r7.2.4 组件设计及细节. h1 z+ o @, M# A
8.后记
2 D# ]- S) w+ u8 N e' f
8 y0 |9 f' c1 G( e X3 R; e1 c
( Z5 W! N& {' J8 S! \' \& jJava资料百度网盘下载地址链接(百度云):透过源码看懂Flink核心框架的执行流程.pdf【密码回帖可见】! f8 e d+ K2 Q$ Z: Z
4 Q; o& C/ c8 g2 _, s- ?4 A- l+ M
# y" R y# U: P; P+ M- x, R$ `
' O8 D1 A R, p) v* o+ U e q0 h: E- G' H. x
0 E3 o7 ^, ] S, u' Q7 r; }5 Y* i
- S; @. N6 o) L8 o& N0 G
" `+ c; a$ m3 `" H' d5 r |
|