scribble

466300750.github.io

Blog GitHub

07 Jan 2020
Flink 大纲

1 Flink框架、基础入门

  • 1.1 整体架构
  • 1.2 部署方式
  • 1.3 分布式运行流程
  • 1.4 与其他计算框架的对比
  • 1.5 统一的批处理和流处理系统
  • 1.6 自己的内存管理机制
  • 1.7 dataflow模型 taskmanager, job, operator, node, task,subtask之间的关系
  • 1.8 并行度
  • 1.9 重启策略
  • 1.10 批处理容错

2 Flink 中的流计算处理

  • 2.1 Flink 多种time对比 – Processing Time、Event Time 和 Ingestion Time
  • 2.2 Window 基础概念与实现原理 – 有两处性能优化点:1. window是否是all window;2. window function是否为ProcessWindowFunction
  • 2.2 Watermark 的用法和结合 Window 处理延迟数据
  • 2.3 触发器
  • 2.4 使用DataStream API来处理数据
    • SingleOutputStreamOperator
    • KeyedStream
    • SplitStream
    • WindowedStream
    • allWindowedStream
    • connectedSreams
    • BroadcastStream
    • BroadcastConnectedStream
    • QueryableStateStream
  • 2.5 Flink常用的Source Connector 和 Sink Connector
    • kafka
    • ES
    • HBase
    • Redis
  • 2.6 使用 Side Output分流(flink中不支持连续split分流,所以鼓励用side output)

3 Flink 中的状态及容错机制

  • 3.1 State
    • 为什么需要 State?
    • Keyed State
    • Operator State
    • Raw and Managed State
    • State TTL(存活时间)
    • Broadcast State
    • Queryable State
  • 3.2 Flink 状态后端存储
    • StateBackends
    • MemoryStateBackend
    • FsStateBackend
    • RocksDBStateBackend(RocksDBStateBackend 是目前唯一支持增量 checkpoint 的后端。)
  • 3.3 Flink Checkpoint 和 Savepoint 的区别及其配置使用 – Source Task会在数据流中安插CheckPoint barrier

4 Table API & SQL

  • 4.1 Flink Table & SQL 概念与通用API
  • 4.2 Flink Table API & SQL 功能

5 扩展库

6 作业环境部署

7 监控

8 性能调优

9 单元测试

  • 9.1 测试 user-defined Functions
    • 单元测试无状态,无时间 UDF
    • 单元测试有状态或者及时的UDF,以及自定义算子
  • 9.2 测试job
    • JUnit Rule MiniClusterWithClientResource

Til next time,
at 09:42

scribble