Flink
文章平均质量分 94
老周聊架构
微信公众号:老周聊架构
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Disaggregated State Management in Apache Flink® 2.0 论文解读
阿里巴巴将Apache Flink应用于所有核心业务场景,充分展现了其在处理海量、大规模实时数据流方面的多功能性。从支撑个性化推荐、大促期间实时仪表盘等动态电商功能,到通过欺诈检测和信用评分实现金融风控,Flink的毫秒级数据处理能力至关重要。该平台还通过实时路线优化和仓储管理提升物流效率,借助动态广告投放和效果追踪增强营销能力,并依靠实时日志与异常检测保障系统稳定性。通过大规模实践及对开源社区的持续贡献,阿里巴巴确立了Flink作为领先流处理引擎的地位[43]。原创 2025-10-20 20:39:49 · 1073 阅读 · 0 评论 -
聊聊Flink:Flink的状态管理
一、Flink的状态是什么?我们知道,Flink的一个算子可能会有多个子任务,每个子任务可能分布在不同的实例(即slot)上,我们可以把Flink的状态理解为某个算子的子任务在其当前实例上的一个变量,该变量记录了流过当前实例算子的历史记录产生的结果。当新数据记录流入时,我们需要结合该结果(即状态,State)来进行计算。实际上,Flink的状态是由算子的子任务来创建和管理的。一个状态的更新和获取的流程如下图所示,一个算子子任务接收输入流,获取对应的状态,根据新的计算结果更新状态。一个简单的例子是对一个时原创 2024-12-22 22:45:11 · 1169 阅读 · 0 评论 -
聊聊Flink:Flink水印的生成策略
在Flink 1.11之前的版本中,提供了两种生成水印(Watermark)的策略,分别是AssignerWithPunctuatedWatermarks和AssignerWithPeriodicWatermarks,这两个接口都继承自TimestampAssigner接口。用户想使用不同的水印生成方式,则需要实现不同的接口,但是这样引发了一个问题,对于想给水印添加一些通用的、公共的功能则变得复杂,因为我们需要给这两个接口都同时添加新的功能,这样还造成了代码的重复。原创 2024-12-04 22:24:38 · 1384 阅读 · 0 评论 -
聊聊Flink:这次把Flink的触发器(Trigger)、移除器(Evictor)讲透
Trigger 决定了一个窗口(由 window assigner 定义)何时可以被 window function 处理。每个 WindowAssigner 都有一个默认的 Trigger。如果默认 trigger 无法满足你的需要,你可以在 trigger(…) 调用中指定自定义的 trigger。窗口的计算触发依赖于窗口触发器,每种类型的窗口都有对应的窗口触发机制,都有一个默认的窗口触发器,触发器的作用就是去控制什么时候来触发计算。原创 2024-11-27 22:44:27 · 1888 阅读 · 0 评论 -
聊聊Flink:这次把Flink的window分类(滚动、滑动、会话、全局)、窗口函数讲透
那么窗口的起止时间将变为[0:15:00.000~1:14:59.999),这样你将得到起始时间在0:15:00,1:15:00,2:15:00的窗口。例如,在没有偏移的情况下,时间窗口会做一个对齐,那么1小时窗口的起止时间可以是[0:00:00.000~0:59:59.999)。ProcessWindowFunction是全量计算函数,如果需要依赖窗口中的所有数据或需要获取窗口中的状态数据和窗口元数据(窗口开始时间、窗口结束时间等),就需要使用ProcessWindowFunction。原创 2024-11-24 21:11:17 · 1329 阅读 · 0 评论 -
聊聊Flink:Flink中的时间语义和Watermark详解
该篇主要讲Flink中的时间语义、Flink 水印机制以及Flink对乱序数据的三重保障。原创 2024-11-18 22:21:36 · 1292 阅读 · 0 评论 -
聊聊Flink:Flink的分区机制
flink任务在执行过程中,一个流(stream)包含一个或多个分区(Stream partition)。TaskManager中的一个slot的subtask就是一个stream partition(流分区),一个Job的流(stream)分布在多个不同的Slot上执行。每一个算子可以包含一个或多个子任务(subtask),这些subtask执行在不同的分区中,本质是在不同的线程、不同的物理机或不同的容器中彼此互不依赖地执行。1.1 Flink数据传输组件之间的通信消息传输。原创 2024-11-15 23:48:40 · 1527 阅读 · 0 评论 -
聊聊Flink:Flink的运行时架构
从Flink 1.6版本开始,将主节点上的进程名称改为了StandaloneSessionClusterEntrypoint,从节点的进程名称改为了TaskManagerRunner,在这里为了方便使用,仍然沿用之前版本的称呼,即JobManager和TaskManager。YARN中资源分配的基本单位,封装了CPU和内存资源的一个容器,相当于一个Task运行环境的抽象。默认情况下,Flink 允许 subtask 共享 slot,即便它们是不同的 task 的 subtask,只要是来自于同一作业即可。原创 2024-11-12 21:49:11 · 1488 阅读 · 0 评论 -
聊聊Flink:Flink的基础架构
哈喽,大家好,我是微信公众号【老周聊架构】的作者老周,老周这次给大家分享下Flink系列的知识。作为Flink系列的开篇之作,我脑海中想着有没有一种很好的方式来让大家通俗易懂的了解Flink。因为你一上来就介绍Flink的一些概念和核心思想,初学的小伙伴不是那么容易接受这么生疏的东西。原创 2024-11-10 21:40:14 · 1128 阅读 · 0 评论 -
聊聊Flink:Docker搭建Flink
现在,可以通过Flink Web界面提交和管理Flink作业。首先,将一个Flink作业的JAR文件上传到Flink Web界面。其中,<jobmanager_container_id>是Flink集群中jobmanager容器的ID,/path/to/job.jar是Flink作业的JAR文件路径。jobmanager用于管理Flink作业,taskmanager用于执行Flink作业的任务。注意:上面的提交是旧的方式,笔者这里用的Flink 1.18版本,上面的命令行已经舍弃了。原创 2024-04-28 22:55:07 · 1995 阅读 · 0 评论
分享