
Flink
Flink学习笔记
胖胖的战士
春有百花秋有月,夏有凉风冬有雪;
若无闲事挂心头,便是人间好时节。
展开
-
Flink学习笔记(十二):Flink State生命周期 - Time-To-Live (TTL)
在前面的 Flink学习笔记(十一):flink KeyedState运用介绍了如何使用state进行sum操作。但是数据流通常是长时间运行,那么存在的状态将越来越多,如何解决这个问题呢?1、Flink State Time-To-Live (TTL)Flink提供了StateTtlConfig机制进行处理。首先我们看下提供的策略类型:TTL 刷新策略(默认OnCreateAndWrite)策略类型描述StateTtlConfig.UpdateType.Disabled禁用原创 2021-12-29 10:07:44 · 2501 阅读 · 0 评论 -
Flink学习笔记(十一):flink KeyedState运用
在前面的Flink学习笔记(八):flink热词统计中介绍了 sum算子进行数据统计,那么有没有别的方法实现呢。本篇记录下另一种实现方式,采用state状态进行统计计算。前文以及介绍了背景,这直接上代码获取数据流,随机模拟搜索的水果统计结构:Tuple2<String, Integer> 水果名称,搜索次数通过 keyBy(0) 聚合相同名称的水果通过ValueState保存中间状态,进行数据累计public class TestKeyedState { private st原创 2021-12-24 20:41:44 · 1401 阅读 · 0 评论 -
Flink学习笔记(十):flink触发器
一、概述上一篇记录了flink的算子(窗口)的相关信息,那么是否有疑问,定义的窗口时什么时候使用的呢?大家是否记得窗口有一个 [.trigger(…)] 的而可选项呢? [.trigger(...)] //trigger:指定触发器Trigger(可选)每个WindowAssigner都带有一个默认触发器,窗口就是通过trigger进行触发操作。Flink中定义了Trigger抽象类,任何trigger必须继承Trigger类,并实现其中的onElement() :方法会在窗口中每进入一条原创 2020-08-17 11:32:58 · 1886 阅读 · 0 评论 -
Flink学习笔记(九):flink窗口介绍
在日常生活场景中,我们经常需要获取某一个事件段的数据,如上文所说,希望统计在10点-11点事件段数据的具体情况,那么如何进行处理呢?如有看过前文(Flink学习笔记(七):flink聚合函数)的小伙伴们可能会记得有一个countWindow,这就是flink给我们提供的算子(窗口,window),使用窗口方法我们可以将数据流分成一个个窗口,然后对窗口内的数据进行处理。我们先看下flink官网对窗口的描述windows是处理无限流的核心。 Windows将流分成有限大小的“存储桶”,我们可以在其上应用计原创 2020-08-17 10:51:58 · 634 阅读 · 1 评论 -
Flink学习笔记(八):flink热词统计
我们在网页上经常可以看到比如 百度热榜,微博热搜 这样的排行数据,那么我们在进行网络搜索的时候如何统计这些数据呢?热词统计有很多中方法,这里主要记录下flink如何进行热词统计。一、场景小白在网络上搜索水果相关内容,如何记录各中水果被搜索的次数呢?通过搜索的次数推荐搜索内容给用户,需要如何实现呢?统计的水果有:“苹果”, “梨”, “西瓜”, “葡萄”, “火龙果”, “橘子”, “桃子”, "香蕉"二、实现如下为设计demo我们先定义一个水果的数组FRUITprivate static f原创 2020-08-11 10:32:57 · 672 阅读 · 0 评论 -
Flink学习笔记(七):flink聚合函数
Flink的AggregateFunction是一个基于中间计算结果状态进行增量计算的函数,可以用在多种场景的实时计算中,而且采用迭代方式,运行效率比较高。一、接口我们查看AggregateFunction接口可以看到它有三个参数输入类型(IN)累加器类型(ACC)输出类型(OUT)@PublicEvolvingpublic interface AggregateFunction<IN, ACC, OUT> extends Function, Serializable {原创 2020-08-10 21:00:05 · 4284 阅读 · 0 评论 -
Flink学习笔记(六):flink数据广播
一、需求场景在很多情况下,对数据流处理需要动态更新一些参数,但是但因为该参数是在算子中作为一个变量,一旦flink作业启动,想修改关键字不得不停掉作业,然后再重新启动作业,实时性和便利性都比较差。记得公司一个项目需要动态配置校验参数,检测日志中的该参数是否存在,频繁的重启flink作业,最后把服务器都搞挂了……,就差拉去祭天了T_T,还好是测试环境,逃过一劫那么有没有可以动态修改算子参数的呢?如何进行动态修改算子的参数呢?flink为我们提供了一个广播模式来解决这个问题。广播流的流数据能够被算子的原创 2020-08-07 14:37:03 · 1991 阅读 · 0 评论 -
Flink学习笔记(四):flink数据分流
前面介绍了如何从kafka获取数据,那么当大量数据格式不一致的时候想对某一种类型进行处理该如何实现呢?flink为我们提供了一套处理方式,分流处理一、分流场景原Stream流需要拆分为Stream1和Stream2流Stream1需要再次拆分为StreamA,StreamB流Stream2需要再次拆分为StreamC,StreamD流#mermaid-svg-q9Cu4aiUUcUi8KGu .label { font-family: 'trebuchet ms', verdana,原创 2020-08-07 11:25:40 · 2271 阅读 · 0 评论 -
Flink学习笔记(五):flink数据合流
上一章记录了flink的分流操作,那么有分流是不是应该有合流呢?当然是有这样的操作啦一、合流场景Stream1和Stream2流需要合并为Stream流#mermaid-svg-BgJgJUty4c6WEdoj .label { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); fill: #333; color: #333; }#mermaid-sv原创 2020-08-07 12:24:56 · 1259 阅读 · 0 评论 -
Flink学习笔记(三):flink读取kafka数据并写入elasticsearch
上篇记录了flink如何读取kafka的数据,我们都知道flink有许多自带的连接器,那么如何把读取的数写入到相关容器中呢?本篇记录下flink 的 elasticsearch 连接器的相关操作。一、连接器flink提供了很多连接器,如图所示,我们可以在官网上查到详细的说明官网连接我们在前面介绍了kafka的连接器,本篇主要介绍下elasticsearch的连接器。首先我们需要注意对应的版本二、5.x版本和6.x/7.x版本连接方法1、5.x版本我们可以看到在5.x版本中使用的连接器为原创 2020-08-06 21:28:08 · 1869 阅读 · 0 评论 -
Flink学习笔记(二):flink环境搭建以及kafka读取
在上一篇笔记中介绍了一个简单的场景,在这记录下如何取实现相关的操作呢,首先我们需要一个可以运行flink的环境吧。一、相关配置1、flink版本 flink-1.5.42、kafka版本 kafka-0.8我们看一下版本的支持情况,可以到官网上面查询具体的信息官方网站二、flink环境搭建首先将flink包上传到服务器上(本例/usr/local),执行相关解压命令,完成后就可以进行配置啦。flink常见有三种搭建方式,Local模式,**Standalone(HA)**模式, Flink原创 2020-07-22 20:46:06 · 1134 阅读 · 0 评论 -
Flink学习笔记(一):为什么选择flink
一、概述在很多数据处理场景下,要求数据以数据流的形式进行分析和存储,然鹅er…为啥选flink呢?流处理的框架不是很多么Q: 流处理框架有很多中,比如前面提到的spark,storm等,为什么选flink?A: 1.flink具有高吞吐、低延迟、高性能的特性(海量数据秒级处理)2.支持带有事件时间的窗口(Window)操作3.持有状态计算的Exactly-once(严格/恰好一次)语义,保障状态的一致性4.支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及原创 2020-07-22 11:39:12 · 757 阅读 · 0 评论 -
Flink:集群异常问题记录
记录下一些相关问题,持续记录中1、stop-cluster.sh 未杀死进程解决方式如果出现启动异常,首先查看日志有无错误如果没有错误查看flink进程ps aux | grep flink进入flink目录./stop-cluster.sh 关闭集群稍等一会再次查看ps aux | grep flink如果进程不存在进入flink目录./start-cluster.sh 启动集群如果进程存在kill进程后在启动集群...原创 2021-01-27 09:13:00 · 387 阅读 · 0 评论 -
Flink:start-cluster.sh启动单节点的时候taskmanager未启动
flink单节点配置的时候,通过start-cluster.sh启动集群,需要在conf文件夹下的slaves中添加localhost,默认是有这个配置的。有一次配置standalong 多节点集群后,重新清除配置,忘记添加了,导致单节点启动一直启动不起来tashmanager,这个问题还排查了好久。。。。。记录下。。。。...原创 2020-02-24 09:39:58 · 4289 阅读 · 1 评论