|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《透过源码看懂Flink核心框架的执行流程》
" i! W+ ]/ H; c4 ]4 m }+ J6 z; v6 W
2 j" D+ i5 m9 Z# Q- @' G0 P; V0 J" K$ E
java电子书目录:1.从 Hello,World WordCount开始0 O9 Q+ t. q4 t+ o
1.1 flink执行环境. [8 r% d$ d& i# m' [9 K* `
1.2 算子(Operator)的注册(声明)9 ?) b9 m }: X5 l: a: y
1.3 程序的执行
$ F% b/ u$ P4 h% @! U6 {9 O1.3.1 本地模式下的execute方法! n p( i, [& ]( H0 p
1.3.2 远程模式(RemoteEnvironment)的execute方法
+ e0 H7 Y/ }% E+ u. i1.3.3 程序启动过程
8 Z4 Z& w X, Z- M, P2.理解flink的图结构3 Q; v% v; G* N6 G. R
2.1 flink的三层图结构
- B) H/ w$ \ D' t4 _8 I5 L2.2 StreamGraph的生成- [" R: L, t& ?8 d
2.2.1 StreamTransformation类代表了流的转换/ \# L' [7 X0 c1 g; q( p0 P
2.2.2 StreamGraph生成函数分析 Z% ]* D2 `7 |; l
2.2.3 WordCount函数的StreamGraph2 X) d4 V$ h- }3 U, ?- g/ v$ X
2.3 JobGraph的生成0 W: a7 H# `% P/ B
2.3.1 JobGraph生成源码7 V" `1 G u$ N0 j: b
2.3.2 operator chain的逻辑
8 ~& S( q7 {8 y8 g2.3.3 JobGraph的提交. ~7 z, F: V! k3 z* V
2.4 ExecutionGraph的生成
+ S& s5 |5 H0 i3. 任务的调度与执行
/ e u e& u# z C* _* u2 n3.1 计算资源的调度: `' i3 h+ Y/ h
3.2 JobManager执行job. w' |% W2 O$ ]) S z. d! s; n( h
3.2.1 JobManager的组件
" h* D2 f' V# w" I9 a( Z6 O3.2.2 JobManager的启动过程
j8 S9 J! L/ m& N3.2.3 JobManager启动Task% ~3 P O. Y \' ]2 d9 ?- H6 m
3.3 TaskManager执行task' V5 L* ]0 G5 N9 [& K, i& x% J
3.3.1 TaskManager的基本组件
/ K9 _0 F9 b+ `( n) l* E3.3.2 TaskManager执行Task* L4 e E8 W' u; B
3.3.2.1 生成Task对象" Z$ O2 P8 \! v8 x9 P6 e% P& ^
3.3.2.2 运行Task对象3 i7 C, G6 T$ { S0 e) G
3.3.2.3 StreamTask的执行逻辑
. ?2 s, c! | w0 j3.4 StreamTask与StreamOperator& w) e# @' J3 U
4. StreamOperator的抽象与实现
8 z& B U. a4 N4.1 数据源的逻辑——StreamSource与时间模型
4 R* p; }% a) _! \6 S7 m% N4.2 从数据输入到数据处理——OneInputStreamOperator &) b& V/ k- K6 b$ R3 l% e# ]. B3 V
AbstractUdfStreamOperator
' o9 i. ^+ m' O' W+ X4 }4.3 StreamSink
4 v6 y. l. c- ~& _4 H. y! y4.4 其他算子
, D% `; [; k2 t4 g8 i! G% r) Z% @5. 为执行保驾护航——Fault Tolerant与保证Exactly-Once语义
* e. p' l0 l. U5.1 Fault Tolerant演进之路8 r' C5 e7 b) ?, d, L- a3 y4 J- @
5.1.1 Storm的Record acknowledgement模式0 p% j# V& p9 E% f) ?
5.1.2 Spark streaming的micro batch模式
! v: Z$ _# u% H" E5 L9 n3 h5.1.3 Google Cloud Dataflow的事务式模型9 i+ e$ B+ @) N. j+ m s
5.1.4 Flink的分布式快照机制
) r. B! B/ s! R5.2 checkpoint的生命周期 F; [ C2 D) n0 v5 ]
5.2.1 触发checkpoint
" l' n; S7 s9 S5.2.2 Task层面checkpoint的准备工作
& u4 |7 s2 N- U' [9 k% O* [5.2.3 操作符的状态保存及barrier传递
1 y8 s# O; }, V0 a% W1 W" x' y8 a. X5.3 承载checkpoint数据的抽象:State & StateBackend
. @% O" h' [( k6.数据流转——Flink的数据抽象及数据交换过程
+ { f0 X9 |- ^4 R9 M4 d9 r6.1 flink的数据抽象
0 {( f# z4 Y1 F c6.1.1 MemorySegment9 h& @ a2 N6 D+ r8 y
6.1.2 ByteBuffer与NetworkBufferPool* ^% U y2 L: }* o: E, e6 M# R. a
6.1.3 RecordWriter与Record; P- Y" P k; K; H3 s7 U1 ~
6.2 数据流转过程
* ^0 |7 v" E5 i' U" O3 V% _6.2.1 整体过程; P) w, Z$ f8 k6 h2 Q0 m! k
6.2.2 数据跨task传递
$ F* B `% Z2 f! @% G) @$ x6.3 Credit漫谈) _* k9 w! v% J' H
6.3.1 背压问题0 v3 _$ Q+ [; d7 @- [" ]1 c
6.3.2 使用Credit实现ATM网络流控) L9 t7 A& o# x7 S, I7 x* C" E
7.其他核心概念& }; A) A( b+ r5 X$ |; ?) J
7.1 EventTime时间模型
. w- d! l8 L- K0 a7.2 FLIP-6 部署及处理模型演进* t- Q2 Y7 r3 ~. a& ?( a
7.2.1 现有模型不足
+ [. D/ h; R3 k1 V' S' v7 N7.2.2 核心变更
2 r: g1 _( }7 Q% b7 M$ x9 `1 a! v7.2.3 Cluster Manager的架构! X# I/ F1 U s6 p8 c/ l ^' j, `
7.2.4 组件设计及细节
) j) D. C. n3 X: Q8.后记
' p0 y2 q5 b6 a! z# X( x3 m - W! K- \/ y N5 q
, M% Q2 y) f$ L2 ^, g
Java资料百度网盘下载地址链接(百度云):透过源码看懂Flink核心框架的执行流程.pdf【密码回帖可见】
8 X* m9 a+ G9 h4 R0 x
S2 @8 R' P8 B7 T! l: L6 f
) J$ `" w. {0 k0 B* D" F1 L4 T" t' k% w& ?* d$ g% f
' H/ g* s& s0 X v$ }( E% [ v& E9 D
" m; G* x# ^. s
h+ d; l h+ A; ^4 [1 ^ |
|