1、Flink 的 抽象层次有几种
Stateful stream processing
Core API
Table
SQL
2、Window 类型
(1)TimeWindow
Tumbling Window(滚动窗口)
Sliding Window(滑动窗口)
Session Window(会话窗口)
Global Window(全局窗口)
(2)countWindow
(3)自定义window
3、Time 类型
事件时间、注入时间和Processing Time
4、Checkpoint的理解
轻量级容错机制(全局异步,局部同步)
保证exactly-once 语义
用于内部失败的恢复
基本原理:通过往source 注入barrier,barrier作为checkpoint的标志
5、Savepoint
流处理过程中的状态历史版本
具有可以replay的功能
外部恢复(应用重启和升级)
两种方式触发:Cancel with savepoint,手动主动触发
$s bin/flink savepoint :jobId [:targetDirectory]
$ bin/flink cancel -s [:targetDirectory] :jobId
6、Flink runtime architecture
Job Manager
Task Manger
Client
角色间的通信(Akka)
数据的传输(Netty)
7、什么是solts
solts :槽,slot 的数量通常与每个 TaskManager 的可用 CPU 内核数成比例。
一般情况下你的 slot 数是你每个 TaskManager 的 cpu 的核数。
8、什么是状态
Definition
task/operator在某个时刻的中间结果
Snapshot
Effect:记录状态并且在失败时用于恢复
Basic type:Operator state、Keyed state
9、RestartStrategies
Restart Strategies
4种重启策略
10、statebacked有几种(3种)
Apache Flink 1.8 Documentation: State Backends
//env.setStateBackend(new MemoryStateBackend());
//env.setStateBackend(new FsStateBackend("hdfs://hadoop100:9000/flink/checkpoints"));
//env.setStateBackend(new RocksDBStateBackend("hdfs://hadoop100:9000/flink/checkpoints",true));
11、运行模式
Job模式
独享Dispatcher和ResourceManager
资源按需申请
适合⼤大作业
Session模式
共享Dispatcher和ResourceManager
共⽤用TaskManager
适合规模⼩小,运⾏行行时间短的作业
12、全量聚合和增量聚合 window
全量聚合:ProcessWindowFunction
增量聚合:ReduceFunction、AggregateFunction、FoldFunction