走进 Apache Flink | 学习笔记(一)

简介: 快速学习走进 Apache Flink

开发者学堂课程【开源 Flink 极客训练营走进 Apache Flink】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/760/detail/13337


走进 Apache Flink

 

内容介绍:

一、追本溯源–Flink 的昨天

二、唯快不破–流批的本质

三、秉轴持钧–流计算的核心

四、学以致用一Flink 应用场景

 

本节目标:

对 Flink 的前世今生有一个直观的了解,同时 Flink 作为流批统一的大数据引擎,了解流与批的本质区别与 Flink 的学习至关重要。了解了流与批的本质区别之后,更需要了解形成这一本质区别的手段是什么。当了解 Flink 的历史,了解了 Flink 的由来以及 Flink 流计算的一些特质,Flink 流支持这些流计算和音特质核心机制后,要清楚的知道 Flink 可以解决哪方面的业务问题。

 

一、追本溯源–Flink的昨天

1.Flink 的起源

德国柏林工业大学就是 Flink 的发源地

图片1.png

Flink 源于柏林工业大学,起初项目的名字并不叫 Flink,而是叫 Stratosphere,该项目的目标是致力于对大数据的处理。所以当时的使命是:Big Data looks tiny from here.

回看 Stratosphere 其实做到了该点,它已经成为 Apache Flink 的顶级项目,也成为了目前火热的、流批统一的大数据引擎。

当时该项目源于学校,也是一个研究型项目,致力于打造新一代的大数据分析平台,除了德国柏林工业大学还有其他大学及机构共同参与和贡献。于2014年4月份贡献给Apache软件基金会,并于12月份迅速成为Apache顶级项目。

在该项目贡献给 Apache 之前,Stratosphere 有36位贡献者:

图片2.png

这些元老级贡献者中,有很多成为了 Flink 的 pmc 成员。

我们现在非常感谢当初他们的创造性的付出,才有了今天在企业中不断创造价值的 Apache Flink。

Stratosphere 项目是从2010年开始的,从它的Git commit日志里面可以看到,它的第一行代码是在2010年的12月15日星期三下午的17时02分01秒开始的。

图片3.png

该名字被柏林工业大学使用了3年多,然后就出现在 Apache 的邮件列表中,也就是在2014年5月14日该项目的名字正式更名为 Flink。

最初的讨论是在 Stratosphere 的开发邮件中进行的,之后在 Apache 的邮件列表进行一个知会,所以在更名为 Flink 之前已经是 Apache 的项目。

图片4.png

2.Flink 的发展

贡献到 Apache 社区后,Apache Flink 孵化器期间,孵化第一个版本在2014年的8月27号完成了第一个版本 v0.6-incubating

图片5.png

从贡献到 Apache 社区到第一个版本的发布,用了4个月左右的时间,该时间也是 Flink 一直保持的发布周期。

在两个孵化器版本发布之后,Apache 迅速在2014年12月12日从 Apache 孵化器毕业,成为 Apache 的顶级项目。

Flink 能在短短几个月内毕业,足以证明其本身的优秀。

在成为 Apache 顶流项目后,Apache 在2015年1月份 Apache 发布了成为顶级项目后的第一个 Release 版本Flink 0.8.0。正式步入了 Apache 顶级项目的正轨。

纵观 Flink 发布的周期的历史,Flink 每四个月会进行一次版本的发布,对于初学者来说,Flink 的昨天、由来(包括名字的由来)、项目的原始初衷和目的、现在的发布,了解的较为清楚了。

3.Flink 内部内容

学习 Flink 内部建议从最新版本开始,当遇到具体问题点、具体功能点,可以回溯其功能的变化。

图片6.png

从 Flink1.11 发布之后,官方陆续文章了一些介绍,一些新功能。

这里简单的列举几点:

第一个:Unaligned Checkpoints

该功能在精准一次性语义下大大缩短了检查点的时间,提高检查点成功的概率。(在1.11版本之前,有一个对其的过程,对其意味着有一个等待的过程,所以等待会有耗时,该新功能消除了该等待时间,进而大大缩短了等待时间,也提高了其成功率,因为进行时会有一个超时时间,时间过长可能会失败,所以该功能在实际生产中是非常主要的功能。)

第二个:Watermark ldleness Detection

水印生成的控前检测,该功能非常实用,举个例子:

比如要上游消费一个 kafka 的数据,有多个 partition,当每个 partition 的数据不一样时,数据最慢或者最小的实验数据会阻碍 Flink 内部的一个叫 word mark 生成的 case ,阻止了 word mark 的持续向前(单调递增的生成),这样的话就阻碍了业务持续的计算。有了 Watermark ldleness Detection 功能后,可以检查某一个空闲,生成 word mark 时可以暂时忽略来确保业务数据的持续的上升计算。

第三个:Batch and Streaming Unification (Source)

Source 接口的统一,流批统一的基础建设之一。

对正在应用 Flink 的用户而言,并不关心到低是流还是批,关心的是计算的延时和计算的准确性。因为流计算延时低,所以才关心流,因为批计算一次结果不再更新,计算非常准确,所以才知道了批的概念。但是其实本身并不关心,可以不告诉是流,不告诉是批,只需要告诉需要这样的延时、需要这样的准确性,是否能够完成就行。所以最终要朝着统一流批融合的方向发展的话,其实流和批对于用户而言越来越淡化。

第四个:Application Mode Deployments

是作为提交模式的优化,在之前提交一个作业要在提交作业的 clangd 端生成一些资源的下载等等,这时如果建立在 Flink 基础之上构建自己的业务平台时,提交作业可以造成单点问题。这项功能的优化减轻了 clangd 的压力。

第五个:Change Data Capture(CDC)

在数据迁移场景非常实用,在很多场景上都有该应用,可以在1.11版本中尝试该类型的功能。

第六个:Pandas UDF PyFlink

PyFlink 本身的愿景是不断地增强 python 的分布式处理能力,从而也不断地扩大 Flink 本身 python 生态。PyFlink 对 Pandas UDF PyFlink 的支持无疑是扩展了 Flink 在 python 生态上的支持,同时 UDF 的性能相对之前的版本也有高达30倍的性能提升。

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
2月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
442 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
343 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
4月前
|
SQL 人工智能 数据挖掘
Apache Flink:从实时数据分析到实时AI
Apache Flink 是实时数据处理领域的核心技术,历经十年发展,已从学术项目成长为实时计算的事实标准。它在现代数据架构中发挥着关键作用,支持实时数据分析、湖仓集成及实时 AI 应用。随着 Flink 2.0 的发布,其在流式湖仓、AI 驱动决策等方面展现出强大潜力,正推动企业迈向智能化、实时化的新阶段。
597 9
Apache Flink:从实时数据分析到实时AI
|
4月前
|
SQL 人工智能 API
Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
Apache Flink 2.1.0 正式发布,标志着实时数据处理引擎向统一 Data + AI 平台迈进。新版本强化了实时 AI 能力,支持通过 Flink SQL 和 Table API 创建及调用 AI 模型,新增 Model DDL、ML_PREDICT 表值函数等功能,实现端到端的实时 AI 工作流。同时增强了 Flink SQL 的流处理能力,引入 Process Table Functions(PTFs)、Variant 数据类型,优化流式 Join 及状态管理,显著提升作业稳定性与资源利用率。
539 0
|
3月前
|
人工智能 运维 Java
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
本文基于Apache Flink PMC成员宋辛童在Community Over Code Asia 2025的演讲,深入解析Flink Agents项目的技术背景、架构设计与应用场景。该项目聚焦事件驱动型AI智能体,结合Flink的实时处理能力,推动AI在工业场景中的工程化落地,涵盖智能运维、直播分析等典型应用,展现其在AI发展第四层次——智能体AI中的重要意义。
1315 27
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
|
4月前
|
存储 人工智能 数据处理
对话王峰:Apache Flink 在 AI 时代的“剑锋”所向
Flink 2.0 架构升级实现存算分离,迈向彻底云原生化,支持更大规模状态管理、提升资源效率、增强容灾能力。通过流批一体与 AI 场景融合,推动实时计算向智能化演进。生态项目如 Paimon、Fluss 和 Flink CDC 构建湖流一体架构,实现分钟级时效性与低成本平衡。未来,Flink 将深化 AI Agents 框架,引领事件驱动的智能数据处理新方向。
500 6
|
4月前
|
消息中间件 存储 Kafka
Apache Flink错误处理实战手册:2年生产环境调试经验总结
本文由 Ververica 客户成功经理 Naci Simsek 撰写,基于其在多个行业 Flink 项目中的实战经验,总结了 Apache Flink 生产环境中常见的三大典型问题及其解决方案。内容涵盖 Kafka 连接器迁移导致的状态管理问题、任务槽负载不均问题以及 Kryo 序列化引发的性能陷阱,旨在帮助企业开发者避免常见误区,提升实时流处理系统的稳定性与性能。
435 0
Apache Flink错误处理实战手册:2年生产环境调试经验总结
|
9月前
|
SQL 存储 人工智能
Apache Flink 2.0.0: 实时数据处理的新纪元
Apache Flink 2.0.0 正式发布!这是自 Flink 1.0 发布九年以来的首次重大更新,凝聚了社区两年的努力。此版本引入分离式状态管理、物化表、流批统一等创新功能,优化云原生环境下的资源利用与性能表现,并强化了对人工智能工作流的支持。同时,Flink 2.0 对 API 和配置进行了全面清理,移除了过时组件,为未来的发展奠定了坚实基础。感谢 165 位贡献者的辛勤付出,共同推动实时计算进入新纪元!
1092 1
Apache Flink 2.0.0: 实时数据处理的新纪元
|
9月前
|
存储 大数据 数据处理
您有一份 Apache Flink 社区年度报告请查收~
您有一份 Apache Flink 社区年度报告请查收~
166 0

推荐镜像

更多