zhisheng17 / flink-learning
flink learning blog. http://www.54tianzhisheng.cn/ 含 Flink 入门、概念、原理、实战、性能调优、源码解析等内容。涉及 Flink Connector、Metrics、Library、DataStream API、Table API & SQL 等内容的学习案例,还有 Flink 落地应用的大型项目案例(PVUV、日志存储、百亿数据实时去重、监控告警)分享。欢迎大家支持我的专栏《大数据实时计算引擎 Flink 实战与性能优化》
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing zhisheng17/flink-learning in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewFlink 学习 麻烦路过的各位亲给这个项目点个 star,太不易了,写了这么多,算是对我坚持下来的一种鼓励吧!另外特别感谢 JetBrains 公司提供的免费全家桶工具,🙏🙏🙏! Stargazers over time 本项目结构 How to build Maybe your Maven conf file mirrors can add aliyun central mirror : then you can run the following command : you can see following result if build success. Flink 系统专栏 基于 Flink 1.9 讲解的专栏,涉及入门、概念、原理、实战、性能调优、系统案例的讲解。扫码下面专栏二维码可以订阅该专栏 首发地址:http://www.54tianzhisheng.cn/2019/11/15/flink-in-action/ 专栏地址:https://gitbook.cn/gitchat/column/5dad4a20669f843a1a37cb4f Change **2022/02/26** 将自己 《Flink 实战与性能优化》专栏放在 GitHub,参见 books 目录 **2021/12/18** 将该项目的 Flink 版本升级至 1.14.2,如果有需要可以去老的分支查看。 **2021/08/15** 将该项目的 Flink 版本升级至 1.13.2,API 发生重大改变,所以代码结构也做了相应的调整(部分代码在 master 分支已经删除,同时将之前的代码切到 feature/flink-1.10.0 上了,如果有需要可以去老的分支查看)。 **2020/02/16** 将该项目的 Flink 版本升级至 1.10,该版本代码都是经过测试成功运行的,尽量以该版本作为参考,如果代码在你们集群测试不成功,麻烦检查 Flink 版本是否一致,或者是否有包冲突问题。 **2019/09/06** 将该项目的 Flink 版本升级到 1.9.0,有一些变动,Flink 1.8.0 版本的代码经群里讨论保存在分支 feature/flink-1.8.0 以便部分同学需要。 **2019/06/08** 四本 Flink 书籍: • [Introduction_to_Apache_Flink_book.pdf]() 这本书比较薄,处于介绍阶段,国内有这本的翻译书籍 • [Learning Apache Flink.pdf]() 这本书比较基础,初学的话可以多看看 • [Stream Processing with Apache Flink.pdf]() 这本书是 Flink PMC 写的 • [Streaming System.pdf]() 这本书评价不是一般的高 **2019/06/09** 新增流处理引擎相关的 Paper,在 paper 目录下: • 流处理引擎相关的 Paper **【提示】**:关于书籍的下载,因版权问题,不方便提供,所以已经删除,需要的话可以切换到老分支去下载。 博客 1、Flink 从0到1学习 —— Apache Flink 介绍 2、Flink 从0到1学习 —— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门 3、Flink 从0到1学习 —— Flink 配置文件详解 4、Flink 从0到1学习 —— Data Source 介绍 5、Flink 从0到1学习 —— 如何自定义 Data Source ? 6、Flink 从0到1学习 —— Data Sink 介绍 7、Flink 从0到1学习 —— 如何自定义 Data Sink ? 8、Flink 从0到1学习 —— Flink Data transformation(转换) 9、Flink 从0到1学习 —— 介绍 Flink 中的 Stream Windows 10、Flink 从0到1学习 —— Flink 中的几种 Time 详解 11、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 ElasticSearch 12、Flink 从0到1学习 —— Flink 项目如何运行? 13、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Kafka 14、Flink 从0到1学习 —— Flink JobManager 高可用性配置 15、Flink 从0到1学习 —— Flink parallelism 和 Slot 介绍 16、Flink 从0到1学习 —— Flink 读取 Kafka 数据批量写入到 MySQL 17、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 RabbitMQ 18、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 HBase 19、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 HDFS 20、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Redis 21、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Cassandra 22、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 Flume 23、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 InfluxDB 24、Flink 从0到1学习 —— Flink 读取 Kafka 数据写入到 RocketMQ 25、Flink 从0到1学习 —— 你上传的 jar 包藏到哪里去了 26、Flink 从0到1学习 —— 你的 Flink job 日志跑到哪里去了 Flink 源码项目结构 学习资料 另外我自己整理了些 Flink 的学习资料,目前已经全部放到微信公众号了。 你可以加我的微信:**yuanblog_tzs**,然后回复关键字:**Flink** 即可无条件获取到,转载请联系本人获取授权,违者必究。 更多私密资料请加入知识星球! 有人要问知识星球里面更新什么内容?值得加入吗? 目前知识星球内已更新的系列文章: 大数据重磅炸弹 1、《大数据重磅炸弹——实时计算引擎 Flink》开篇词 2、你公司到底需不需要引入实时计算引擎? 3、一文让你彻底了解大数据实时计算框架 Flink 4、别再傻傻的分不清大数据框架Flink、Blink、Spark Streaming、Structured Streaming和Storm之间的区别了 5、Flink 环境准备看这一篇就够了 6、一文讲解从 Flink 环境安装到源码编译运行 7、通过 WordCount 程序教你快速入门上手 Flink 8、Flink 如何处理 Socket 数据及分析实现过程 9、Flink job 如何在 Standalone、YARN、Mesos、K8S 上部署运行? 10、Flink 数据转换必须熟悉的算子(Operator) 11、Flink 中 Processing Time、Event Time、Ingestion Time 对比及其使用场景分析 12、如何使用 Flink Window 及 Window 基本概念与实现原理 13、如何使用 DataStream API 来处理数据? 14、Flink WaterMark 详解及结合 WaterMark 处理延迟数据 15、基于 Apache Flink 的监控告警系统 16、数据仓库、数据库的对比介绍与实时数仓案例分享 17、使用 Prometheus Grafana 监控 Flink 源码系列 1、Flink 源码解析 —— 源码编译运行 2、Flink 源码解析 —— 项目结构一览 3、Flink 源码解析—— local 模式启动流程 4、Flink 源码解析 —— standalonesession 模式启动流程 5、Flink 源码解析 —— Standalone Session Cluster 启动流程深度分析之 Job Manager 启动 6、Flink 源码解析 —— Standalone Session Cluster 启动流程深度分析之 Task Manager 启动 7、Flink 源码解析 —— 分析 Batch WordCount 程序的执行过程 8、Flink 源码解析 —— 分析 Streaming WordCount 程序的执行过程 9、Flink 源码解析 —— 如何获取 JobGraph? 10、Flink 源码解析 —— 如何获取 StreamGraph? 11、Flink 源码解析 —— Flink JobManager 有什么作用? 12、Flink 源码解析 —— Flink TaskManager 有什么作用? 13、Flink 源码解析 —— JobManager 处理 SubmitJob 的过程 14、Flink 源码解析 —— TaskManager 处理 SubmitJob 的过程 15、Flink 源码解析 —— 深度解析 Flink Checkpoint 机制 16、Flink 源码解析 —— 深度解析 Flink 序列化机制 17、Flink 源码解析 —— 深度解析 Flink 是如何管理好内存的? 18、Flink Metrics 源码解析 —— Flink-metrics-core 19、Flink Metrics 源码解析 —— Flink-metrics-datadog 20、Flink Metrics 源码解析 —— Flink-metrics-dropwizard 21、Flink Metrics 源码解析 —— Flink-metrics-graphite 22、Flink Metrics 源码解析 —— Flink-metrics-influxdb 23、Flink Metrics 源码解析 —— Flink-metrics-jmx 24、Flink Metrics 源码解析 —— Flink-metrics-slf4j 25、Flink Metrics 源码解析 —— Flink-metrics-statsd 26、Flink Metrics 源码解析 —— Flink-metrics-prometheus 26、Flink Annotations 源码解析 除了《从1到100深入学习Flink》源码学习这个系列文章,《从0到1学习Flink》的案例文章也会优先在知识星球更新,让大家先通过一些 demo 学习 Flink,再去深入源码学习! 如果学习 Flink 的过程中,遇到什么问题,可以在里面提问,我会优先解答,这里做个抱歉,自己平时工作也挺忙,微信的问题不能做全部做一些解答, 但肯定会优先回复给知识星球的付费用户的,庆幸的是现在星球里的活跃氛围还是可以的,有不少问题通过提问和解答的方式沉淀了下来。 1、为何我使用 ValueState 保存状态 Job 恢复是状态没恢复? 2、flink中watermark究竟是如何生成的,生成的规则是什么,怎么用来处理乱序数据 3、消费kafka数据的时候,如果遇到了脏数据,或者是不符合规则的数据等等怎么处理呢? 4、在Kafka 集群中怎么指定读取/写入数据到指定broker或从指定broker的offset开始消费? 5、Flink能通过oozie或者azkaban提交吗? 6、jobmanager挂掉后,提交的job怎么不经过手动重新提交执行? 7、使用flink-web-ui提交作业并执行 但是/opt/flink/log目录下没有日志文件 请问关于flink的日志(包括jobmanager、taskmanager、每个job自己的日志默认分别存在哪个目录 )需要怎么配置? 8、通过flink 仪表盘提交的jar 是存储在哪个目录下? 9、从Kafka消费数据进行etl清洗,把结果写入hdfs映射成hive表,压缩格式、hive直接能够读取flink写出的文件、按照文件大小或者时间滚动生成文件 10、flink jar包上传至集群上运行,挂掉后,挂掉期间kafka中未被消费的数据,在重新启动程序后,是自动从checkpoint获取挂掉之前的kafka offset位置,自动消费之前的数据进行处理,还是需要某些手动的操作呢? 11、flink 启动时不自动创建 上传jar的路径,能指定一个创建好的目录吗 12、Flink sink to es 集群上报 slot 不够,单机跑是好的,为什么? 13、Fllink to elasticsearch如何创建索引文档期时间戳? 14、blink有没有api文档或者demo,是否建议blink用于生产环境。 15、flink的Python api怎样?bug多吗? 16、Flink VS Spark Streaming VS Storm VS Kafka Stream 17、你们做实时大屏的技术架构是什么样子的?flume→kafka→flink→redis,然后后端去redis里面捞数据,酱紫可行吗? 18、做一个统计指标的时候,需要在Flink的计算过程中多次读写redis,感觉好怪,星主有没有好的方案? 19、Flink 使用场景大分析,列举了很多的常用场景,可以好好参考一下 20、将kafka中数据sink到mysql时,metadata的数据为空,导入mysql数据不成功??? 21、使用了ValueState来保存中间状态,在运行时中间状态保存正常,但是在手动停止后,再重新运行,发现中间状态值没有了,之前出现的键值是从0开始计数的,这是为什么?是需要实现CheckpointedFunction吗? 22、flink on yarn jobmanager的HA需要怎么配置。还是说yarn给管理了 23、有两个数据流就行connect,其中一个是实时数据流(kaf…