Flink 成长之路简介
一.简介
Flink 成长之路是博主在接触并开发公司 Flink 线上项目后,从 API + 实战角度按顺序总结的专栏,Flink 版本适配 1.13.x、Scala 版本适配 2.11.x、2.12.x,其中大部分章节和 Demo 主要基于 Flink + Scala 的组合实现,少部分章节内容也涉及到 Java 的开发,其中很多内容都是在千万级别用户、十亿级别流量场景实战总结而来。 主要分为3个部分:
- Flink API 详解
- Flink 常用 Demo 案例
- Flink 线上开发异常解决与分析
后续也会继续基于开发场景总结更新这三部分内容 ...
二.Flink API 详解
基于官方 API 翻译并扩展,增加使用 Demo。
适用 | 文章 | 关键字 |
Scala | 1.Flink 入门 Demo | Sink、WindowFunction |
Scala | 2.Flink DataSet 生成 DataSource | DataSet、readFile |
Scala | 3.Flink DataStream 生成 DataSource | DataStream、addSource |
Scala | 4.DataSet 常用 Transform 函数 | DataSet、transform |
Scala | 5.DataStream 常用 Transform 函数 | DataStream、transform |
Scala | 6.WatermarkStrategy 与 EventTime | WaterMark、EventTime |
Scala | 7.DataSet 与 DataStream Sink 输出数据 | Sink、AddSink |
Scala | 8.DataSet 应用 Broadcast Variables | DataSet、Broadcast |
Scala | 9.DataStream Broadcast State 示例详解 | DataStream、Broadcast |
Scala | 10.TimeWindow And TimeWindowAll 详解 | TimeWindow、TimeWindowall |
Scala / Java | 11.Window Trigger 简介与使用 | Window、Trigger |
Scala | 12.CountTrigger && ProcessingTimeTriger | Count、ProcsssTime Trigger |
Scala | 13.CountAndProcessTimeTrigger 实现 | Count + ProcessTime Trigger |
Scala / Java | 14.Flink 内存模型详解 | Flink Memory |
Scala | 15.最新 StateBackend 状态后端详解 | StateBackend |
Scala | 16.有状态算子和应用Demo详解 | ValueState |
Scala | 17.Metrics 使用与详解 | Metrics |
三.Flink 常用 Demo 案例
线上开发以及基础项目实现 Demo 与调优。
适用 | 文章 | 关键字 |
Scala | 1.使用 CountWindow 实现按条数触发窗口 | CountWindow、WindowFunction |
Scala | 2.使用 RedisSink 存储数据 | RedisSink、Jedis |
Scala / Java | 3.Flink 读取 Parquet 文件 | readFile、parquet、schema |
Scala | 4.BroadCast 数据先到再处理 Source 数据 | Broadcast、ValueState |
Scala | 5.ProcessFunction 之间共用缓存测试 | ProcessFunction、Cache |
Scala | 6.Jedis、JedisPool 作为 Source 读取数据 | Jedis、Source |
Scala / Java | 7.大规模状态 ValueState IO 实践与优化 | ValueState、Statebackend、IO |
Scala | 8.Timer 与 TimerService 源码分析与详解 | TimerService、OnTimer |
Scala | 9.Kafka 下发消息过大分析 | Kafka、Record |
Scala | 10.ProcessFunction 使用缓存详解 | ProcessFunction、Cache |
Scala | 11.大规模状态 ValueState 内存实践与优化 | ValueState、Statebackend、内存 |
Scala | 12.Aggregate 详解与 UV、PV 统计实战 | Aggregate、UV、PV |
Scala | 13.TimeWindow 处理迟到数据详解 | TimeWindow、LateData |
Scala | 14.AllWindow & KeyedProcess 处理 TopK | AllWindow、KeyedProcess、TopK |
Scala | 15.Stream 基本合流操作 - Union & Connect | Stream、Union、Connect |
Scala | 16.Stream 基于时间合流 | Join、CoGroup、IntervalJoin |
四.Flink 线上开发异常解决与分析
本地测试与线上运行遇到的异常与分析排查解决。
适用 | 文章 | 关键字 |
Scala | 1.新增 BroadcastStream 无 watermark | BroadcastValue、WaterMark |
Scala | 2.non serializable fields 无法序列化问题 | Object、Serializable |
Scala | 3.InternalError: Malformed class name | Malformed、Case Class |
Scala | 4.util.RetryCounter.sleepUntilNextRetry | Hbase、backpressure |
Scala | 5.Failed to start Queryable State Data Server | Local、Linux |
Scala | 6.FixedDelayRestartBackoffTimeStrategy | Recover、Restart Strategy |
Scala | 7.Java8ClosureRegistrar.areOnJava8()Z | NoSuchMethod、arOnJava8()Z |
Scala | 8.NumberFormatException: Not a version: 9 | NumberFormat、LocalCache |
Scala | 9.The heartbeat of TaskManager Timed Out | TM、Headtbeat、Timed Out |
Scala | 10.Not all required task are currently running | Checkpoint、Running |