|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《透过源码看懂Flink核心框架的执行流程》) }# T. H3 J* r
! G6 A' N6 [% Z" \) L
' D, ^0 [6 K. E! C; `
* \) E1 u& H* W! Q7 ^
java电子书目录:1.从 Hello,World WordCount开始0 x9 x& T+ V, ~
1.1 flink执行环境
8 C) ? Y* p9 ~2 k5 X0 \* a1.2 算子(Operator)的注册(声明)
' w+ W7 s5 A3 _5 f( O; L2 j1.3 程序的执行) h E. `9 N" \0 j5 {$ K8 u
1.3.1 本地模式下的execute方法
# m5 \0 R# @( H$ X1 t. r' s# l1.3.2 远程模式(RemoteEnvironment)的execute方法) f% _3 p( `6 u/ L2 i2 D
1.3.3 程序启动过程9 U' \9 H; y. ~
2.理解flink的图结构
3 B. ^6 u% E( Y6 l. _1 J4 E2.1 flink的三层图结构
/ ]8 V4 J$ P4 N; l2.2 StreamGraph的生成% n2 ~; D4 v L
2.2.1 StreamTransformation类代表了流的转换
9 A$ a4 E2 ]6 X+ d3 a2.2.2 StreamGraph生成函数分析8 O, `+ ^" M; h5 R
2.2.3 WordCount函数的StreamGraph* Z3 N( U- u% i3 v) u
2.3 JobGraph的生成
* R4 X+ f. ?( Y3 B2.3.1 JobGraph生成源码* ? K* Q+ }# ~1 B7 r' O- S
2.3.2 operator chain的逻辑
" s: l% t# F$ y2.3.3 JobGraph的提交
" M n9 z$ J; m2.4 ExecutionGraph的生成
' w: t/ ~8 r0 P5 O# D+ ~+ L# N3. 任务的调度与执行3 s# Q: O- b7 }2 @3 [
3.1 计算资源的调度
* `# o8 @0 x; j3.2 JobManager执行job
( ?& J$ P/ Y' O7 N! K3.2.1 JobManager的组件5 P& p" r: ?! q3 p
3.2.2 JobManager的启动过程% m v& @- f: G' y& W# x/ J
3.2.3 JobManager启动Task
, L1 f( Z5 j2 _. K3.3 TaskManager执行task$ J4 c8 F! m! O
3.3.1 TaskManager的基本组件
, g4 }& H U: c3 U- c/ N3.3.2 TaskManager执行Task/ K- H( v M/ F4 f0 U3 d7 M
3.3.2.1 生成Task对象9 e! ]+ }' X. B( X- V
3.3.2.2 运行Task对象
6 Y/ J' r3 i z5 ` Z' K3.3.2.3 StreamTask的执行逻辑
2 T- }) E- [& y# c) P3.4 StreamTask与StreamOperator
0 F0 @5 I( K9 y# h+ n: r0 j4. StreamOperator的抽象与实现! x% ?" P0 v4 F4 `8 |" ^# i
4.1 数据源的逻辑——StreamSource与时间模型- j- w% ^% B/ d7 d1 D
4.2 从数据输入到数据处理——OneInputStreamOperator &
1 }9 W7 l& q# X2 ^$ `# i! hAbstractUdfStreamOperator0 P: i. f1 m8 K4 X. s" D2 N
4.3 StreamSink
$ A5 H+ b7 m( ?/ ?# h( Y3 z% C4.4 其他算子
* @0 _, S5 |6 p+ _2 h7 X# v5. 为执行保驾护航——Fault Tolerant与保证Exactly-Once语义: v8 u( c& F$ K9 d W0 [4 |
5.1 Fault Tolerant演进之路
( Q% p6 u$ R) R4 I6 k4 u5.1.1 Storm的Record acknowledgement模式. ~9 m* Y5 M y# D- P" o$ W( h
5.1.2 Spark streaming的micro batch模式
( c0 K, L. \5 S, L2 T; d5.1.3 Google Cloud Dataflow的事务式模型! F; i$ u. l! u# ^& v/ \" z+ a
5.1.4 Flink的分布式快照机制$ w) U! j$ O8 e5 I1 V& L& j
5.2 checkpoint的生命周期
1 S$ h$ O" T5 L4 x5.2.1 触发checkpoint s) q) K5 Q; g& |5 R" {
5.2.2 Task层面checkpoint的准备工作) a0 a- C, |4 p+ J
5.2.3 操作符的状态保存及barrier传递
6 o% c1 J" r+ J; K& `5.3 承载checkpoint数据的抽象:State & StateBackend
2 f# b. b8 K0 {+ N6.数据流转——Flink的数据抽象及数据交换过程9 Q& a# |; u( [
6.1 flink的数据抽象
$ c6 X* A# D7 I6 @# }: z6.1.1 MemorySegment, b7 x3 t8 v$ _6 _) I4 \% I
6.1.2 ByteBuffer与NetworkBufferPool& c: \0 u. B; L- c
6.1.3 RecordWriter与Record3 B, O0 ~: X9 d. ]! g! d
6.2 数据流转过程/ @8 r0 h8 N1 [. q4 n& `/ U' s
6.2.1 整体过程
- `' J1 L" a" g4 V; ?4 v3 ^# V m; u* `6.2.2 数据跨task传递 Z( H: x2 x! R) r# c( A, P; k: U
6.3 Credit漫谈& o% |0 a' e" `) ~0 K" F3 h
6.3.1 背压问题
- `( X2 u* F& [) L7 E. K" N, N6.3.2 使用Credit实现ATM网络流控
' ]% h/ M" ~2 X+ ]6 M# {7.其他核心概念
8 F6 Z+ M' T u% z6 X; [- L5 i7.1 EventTime时间模型$ g4 Y1 S! D, M D! [( c
7.2 FLIP-6 部署及处理模型演进" }; j; h/ R! z" }/ v& t+ S
7.2.1 现有模型不足9 [- _% n$ T' x: p7 L$ ?: f3 g
7.2.2 核心变更' m+ x( ?- U' D6 v1 o2 Y& D
7.2.3 Cluster Manager的架构- E9 a, f4 V. s$ X' v
7.2.4 组件设计及细节
1 c3 h( ], t- J$ E8.后记 # w# ^) E; }; v( O% r0 r+ r
& J5 a9 p- ?* Y
, f) \' D& z5 i% |" D' mJava资料百度网盘下载地址链接(百度云):透过源码看懂Flink核心框架的执行流程.pdf【密码回帖可见】( M4 d9 `4 U( J
' ?1 @( q `/ \: N' G8 r1 y! d. p/ H
0 \5 k. G C! C ~/ [- d
, ]; O% ~+ S; Y7 b: K9 }! v2 ]- B! f
4 s" r0 ]/ p. ]* L2 [
7 b: i) Y7 F* u5 J: n3 o+ e5 ^2 k" ?2 P) ]# V4 E
|
|