摘要:一、源码提取说明 ### 直接启动consumer ~~~ # 源码提取说明:FlinkKafkaConsumerBase.java ~~~ # 第160~161行 /** The startup mode for the consumer (default is {@link StartupMod
阅读全文
摘要:一、源码提取说明 ### kafkaFetcher的runFetchLoop方法 ~~~ 此方法为FlinkKafkaConsumer获取数据的主入口,通过一个循环来不断获取kafka broker的数据。 ~~~ # 源码提取说明:KafkaFetcher.java:方法实现 ~~~ # 第124
阅读全文
摘要:一、关于并行度的设置 ### 关于并行度的设置 ~~~ 一个Flink程序由多个Operator组成(source、transformation和 sink)。 ~~~ 一个Operator由多个并行的Task(线程)来执行, ~~~ 一个Operator的并行Task(线程)数目就被称为该Oper
阅读全文
摘要:一、Flink-Connector (Kafka) ### 源码理解 ~~~ # Funtion:UDF 处理数据的逻辑 ~~~ RichFunction: open/close 管理函数的生命周期的方法 ...RunTimeContext函数的运行时上下文 ~~~ SourceFunction:
阅读全文
摘要:一、源码提取说明 ### flink-kafka 是如何消费的?以及如何分区分配等 ~~~ open方法源码: ### 指定offset提交模式 ~~~ OffsetCommitMode: ~~~ OffsetCommitMode:表示偏移量如何从外部提交回Kafka brokers/ ~~~ Zo
阅读全文
摘要:一、编程代码实现 ### 编程代码实现:broadcastdemo.java package com.yanqi.state; import org.apache.flink.api.common.functions.FilterFunction; import org.apache.flink.a
阅读全文
摘要:NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of
阅读全文
摘要:一、state 文件格式 ### state文件格式 ~~~ 当我们创建 state 时,数据是如何保存的呢? ~~~ 对于不同的 statebackend,有不同的存储格式。 ~~~ 但是都是使用 flink 序列化器,将键值转化为字节数组保存起来。 ~~~ 这里使用 RocksDBStateBa
阅读全文
摘要:一、开启 checkpoint ### 开启checkpoint ~~~ 开启 checkpoint 后, ~~~ state backend 管理的 taskmanager 上的状态数据才会被定期备份到jobmanager 或 外部存储, ~~~ 这些状态数据在作业失败恢复时会用到。我们可以通过以
阅读全文
摘要:一、配置 state backend ### state backend ~~~ 我们知道 flink 提供了三个 state backend,那么如何配置使用某个 state backend 呢? ~~~ 默认的配置在 conf/flink-conf.yaml 文件中 state.backend
阅读全文
摘要:一、Keyed State & Operator State ### state 分类 ~~~ # Operator State (或者non-keyed state ) ~~~ 每个 Operator state 绑定一个并行 Operator 实例。 ~~~ Kafka Connector 是使
阅读全文
摘要:一、广播状态:什么是广播状态? ### 广播状态说明 ~~~ 所有并行实例,这些实例将它们维持为状态。不广播另一个流的事件, ~~~ 而是将其发送到同一运营商的各个实例,并与广播流的事件一起处理。 ~~~ 新的广播状态非常适合需要加入低吞吐量和高吞吐量流或需要动态更新其处理逻辑的应用程序。 ~~~
阅读全文
摘要:一、状态存储(扩展) ### 状态存储 ~~~ Flink 的一个重要特性就是有状态计算(stateful processing)。 ~~~ Flink 提供了简单易用的 API 来存储和获取状态。 ~~~ 但是,我们还是要理解 API 背后的原理,才能更好的使用。 ### State 存储方式:F
阅读全文
摘要:一、Flink的State--状态原理及原理剖析 ### Flink的state&状态原理及原理剖析 ~~~ State:用来保存计算结果或缓存数据。 ~~~ Sum 二、状态类型 ### 状态类型 ~~~ Flink根据是否需要保存中间结果,把计算分为有状态计算和无状态计算 ~~~ 有状态计算:依
阅读全文
摘要:一、状态描述:状态描述流程 ### 状态描述说明 ~~~ State 既然是暴露给用户的,那么就需要有一些属性需要指定: ~~~ state 名称、val serializer、state type info。 ~~~ 在对应的statebackend中,会去调用对应的create方法获取到stat
阅读全文
摘要:一、watermark案例 ### 实现步骤: ~~~ 获取数据源 ~~~ 转化 ~~~ 声明水印(watermark) ~~~ 分组聚合,调用window的操作 ~~~ 保存处理结果 ### 注意: ~~~ 当使用EventTimeWindow时,所有的Window在EventTime的时间轴上进
阅读全文
摘要:一、Flink Time ### Time ~~~ 在Flink的流式处理中,会涉及到时间的不同概念,如下图所示: ### Flink Time说明 ~~~ # - EventTime[事件时间] ~~~ 事件发生的时间, ~~~ 例如:点击网站上的某个链接的时间, ~~~ 每一条日志都会记录自己的
阅读全文
摘要:NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of
阅读全文
摘要:一、Flink Window窗口机制:时间窗口TimeWindow:会话窗口(Session Window) ### Flink Window窗口机制:时间窗口TimeWindow:会话窗口(Session Window) ~~~ 时间窗口TimeWindow:会话窗口(Session Window
阅读全文
摘要:一、Flink Window窗口机制 ### 时间窗口TumWindow:基于时间驱动 ~~~ # 场景: ~~~ 我们需要统计每一分钟中用户购买的商品的总数,需要将用户的行为事件按每一分钟进行切分, ~~~ 这种切分被成为翻滚时间窗口(Tumbling Time Window) 二、编程代码实现
阅读全文