随笔分类 - Flink
Flink学习研究
摘要:1. 简介 1. 简介 处理函数ProcessFunction主要是定义数据流的转换操作,也可以把它划分为转换算子。处理函数提供了一个"定时服务", 我们可以通过它访问流中的事件、事件戳、水位线、甚至可以注册定时事件。该类继承自AbstractRichFunction,拥有富函数类的所有特性,同
阅读全文
摘要:1. 概念 窗口是用来处理无界流的核心。定义窗口一般是包含起始时间、不包含结束时间的,用数学符号表示就是一个左闭右开的区间,例如0-10s的窗口表示为[0, 10)。 需要注意的是,Flink 的窗口不是静态准备好的,而是动态创建的。当有落在这个窗口区间范围的数据到达时,才会创建对应的窗口。
阅读全文
摘要:1. 时间语义 有两个非常重要的时间概念:数据的产生时间(数据自带的创建时间)和处理时间(执行处理操作的机器的系统时间)。 另外还有一个摄入时间,指的是数据进入flink数据流的时间,也就是source 算子读入数据的时间。 一般以事件时间为基准,比如我们统计PV、UV 等指标,我们就需
阅读全文
摘要:Flink 有非常灵活的分层API设计,其中的核心层就是DataSet/DataStream API。新版本中DataSetAPI 被弃用,使用DataStream 即可实现流批一体。 DataStream(数据流)本身是Flink 中一个用来表示集合的类,我们编写的Flink 代码其实就是基于这种
阅读全文
摘要:分区是要将数据进行重新分布,传递到不同的流分区。keyBy 操作实际是一种按照hashCode 值进行重新分区的操作,这也是一种逻辑分区(按照散列值随机分开)。简单的说,分区就是slot 任务,重分区就是分配任务到不同的slot。 系统默认也有分区,比如:我们编写的程序可能对多个处理任务设置了不同的
阅读全文
摘要:1. 系统架构 Flink 运行时的两大架构。JobManager作业管理器和TaskManager任务管理器。 JobManager:真正的管理者(master),负责管理和调度。在不考虑高可用的情况下只有一个。 TaskManager:可以理解为工作中(worker, slave)。可以有一个或
阅读全文
摘要:简单研究下Flink的任务部署。我们在IDEA 开发工具中用代码跑Flink 的时候,实际是会虚拟出一个小型的Flink 集群,当执行execute 的时候是将上面的代码作为一个job 提交到Flink 的JobManager中。 参考: https://nightlies.apache.org/f
阅读全文
摘要:以一个简单的入门例子,统计每个单词出现的次数开始。 1. pom配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.
阅读全文
摘要:参考官网: https://flink.apache.org/ 截止目前:20220606, flink 最新的版本1.15。本次学习使用Flink1.13 + jdk8 进行学习。 1. 简单介绍 Flink 是Apache旗下的一个框架和分布式处理引擎。用于对无界和有界数据流进行有状态计算,核心
阅读全文