【Flink】
文章平均质量分 60
学习Flink的知识
月疯
得到你最想要的东西,最保险的办法,那就是你能配得上你最想要的东西。机会是留给有准备的人,运气是留给有天赋的努力者。
展开
-
Flink的并行度和Kafka的partition的结合
flink kafka实现反序列化:package Flink_Kafka;import com.alibaba.fastjson.JSON;import org.apache.flink.api.common.serialization.DeserializationSchema;import org.apache.flink.api.common.typeinfo.TypeInformation;import org.apache.flink.streaming.api.datastre原创 2022-03-30 21:03:11 · 2721 阅读 · 0 评论 -
Flink当中使用kafka Consumer
Flink与kafka结合使用的三个优势:第一:kafka可以作为Flink的Source和Sink来使用;第二:Kafka的Partition机制和Flink的并行度机制可以深度结合,从而提高数据的读取率和写入效率第三:当Flink任务失败的时候,可以通过设置kafka的Offset来恢复应用从而重新消费数据添加依赖: <dependency> <groupId>org.apache.flink</groupId&g原创 2022-03-29 20:23:56 · 6279 阅读 · 2 评论 -
Flink之Watermark滑动窗口案例
只要水印watermark的时间大于等于窗口的结束时间,并且窗口内有数据存在,就会触发对应窗口计算。除此之外,如果flink配置了allowedLateness参数,只要水印watermark的时间小于等于窗口的结束时间加上allowedLateness参数时间,将会重新触发对应窗口的计算。滚动窗口联系watermark:package Flink_Window;import org.apache.flink.api.common.functions.FlatMapFunction;..原创 2022-03-29 16:26:17 · 2095 阅读 · 0 评论 -
Flink窗口聚合案例(增量聚合、全量聚合)
上面我们time window和count window讨论了聚合,下面我们从另外一个角度对window进行分类,从聚合角度。window的集合操作分为2种:一种是增量聚合,一种时候全量聚合,增量聚合是指窗口内每进入一条数据就计算一次,而全量聚合是指在窗口被处罚的时候才会对窗口内的所有数据进行一次聚合1、增量聚合:窗口内每进入一条数据就计算一次常见的增量聚合的函数有:reduce(reduceFunction)、aggregate(aggregateFunction)、sum()、mi..原创 2022-03-28 18:52:48 · 4777 阅读 · 0 评论 -
Flink的窗口聚合操作(Time\Count Window)
窗口基本概念:Flink中的窗口是左闭右开的窗口Flink认为批处理是流处理的一个特例,而窗口window就是从流处理到批处理的一个桥梁,通常来讲窗口就是用来将无线数据流转换为优先数据集,从而在优先数据集上进行操作的一种机制,在flink当中支持基于无限大(永久)窗口的集合操作以及特定窗口的集合操作。在flink当中支持的窗口聚合主要分为2种:window Aggregate和Over Aggregate,window Aggregate只有当窗口结束时才会输出结果,window aggre.原创 2022-03-28 15:03:21 · 3229 阅读 · 0 评论 -
Flink的waterMark概念解释
Stream数据中Time(时间)可以分为三种:Event Time:事件真正产生的时间,即业务系统真正产生日志的时间,它通常由事件中的时间戳描述。Ingestion time:事件进入Flink的时间;Processing Time:事件被处理时,当前的系统时间,默认使用的就是这个词。我们统计Event time窗口某个时间段内产生的日志。存在一个问题:kafka出来的数据有可能是乱序的,也有可能是延迟的。这种情况下我们就定义出了watermark得到概念。为什么需要water原创 2022-03-28 11:18:12 · 3124 阅读 · 0 评论 -
Flink的累加器和广播变量、广播流、分布式缓存
1、Accumulator累加器Accumulator即累加器,与Mapreduce counter的应用场景差不多,都能很好地观察task在运行期间的数据变化。可以在Flink job任务中的算子函数中使用累加器,但是只能在任务执行结束后才能获得累加器的最终结果。Counter是一个具体的累加器(Accumulator)实现,常用的Counter有IntCounter,LongCounter和DoubleCounter。用法: 1:创建累加器 private IntCo.原创 2022-03-26 20:26:25 · 1904 阅读 · 0 评论 -
Flink的并行度及Slot
一个Flink程序Application由多个任务组成(source、transformation和sink),一个任务由多个并行实例(线程)来执行,一个任务的并行度实例(线程数)数目被称为该任务的并行度。并行度的设置方式:a、Operrator Level(算子层次)b、Execution Environment Level(执行环境层次)c、Client Level(客户端层次)d、System Level(系统层次)并行度的优先级Operrator Level>Execut.原创 2022-03-24 12:24:00 · 5325 阅读 · 0 评论 -
Flink算子(Filter、KeyBy、Reduce和Aggregate)
Filter算子:过滤作用filter算子过滤函数过滤函数,过滤出需要的数据,对传入的数据进行判断,如果返回true则该元素继续向下传递,如果返回false则该元素将被过滤掉。比如:如果返回来的价格大于100,我就打印出来,小于100就不打印出来package Flink_API;import com.alibaba.fastjson.JSON;import org.apache.flink.api.common.functions.FilterFunction;import org原创 2022-03-23 20:37:38 · 3376 阅读 · 0 评论 -
Flink算子(ProcessFunction,map和Flatmap)
Flink提供三层API,每个API在简洁性和表达之间提供不同的权衡,并针对不同的用例SQL/Table API(dynamic tables)DataStream API(streams,windows)ProcessFunction(event,state,time)不要跟ProcessWindowFunction混为一谈ProcessFunction是一个低阶的流处理操作,它可以访问流处理程序的基础构建模块:事件(event)(流元素)状态(state)(容错性,一致性,..原创 2022-03-23 15:40:49 · 3447 阅读 · 0 评论 -
虚拟机搭建CentOS Hadoop集群搭建(04)
配置SSH免密码登录(NameNode)1、SSH免密码登录的作用通过SSH免密码登录这种机制,只要知道远程机器的主机名(hostname),通过shell命令就可以登录到远程的机器,而不用输入远程机器的密码(第一次ssh的时候需要输入一下yes);同时通过ssh免密码登录不用手动启动相应的进程!除此之外,也可以通过上面的秘钥文件进行无密码登录验证方式:ssh 主机名2、SSH免密码登录原理假设hadoop11向服务器hadoop22发送请求登录,hadoop22会将hadoop11中的公钥和自己原创 2022-03-13 18:58:55 · 104 阅读 · 0 评论 -
Flink分区策略
分区策略决定了一条数据如何发给下游,Flink中提供八大分区策略。1、BroadcastPartitioner广播分区会将上游数据输出到下游算子的每个实例(),适合于大数据和小数据集做JOIN场景。2、CustomPartitionerWrapper自定义分区需要用户根据自己实现Partitioner接口,来定义自己的分区逻辑。3、ForwarPartitioner用户将记录输出到下游本地的算子实例。它要求上下游算子并行度一样。简单的说,ForwarPartitioner可以来做控制台打印。4、原创 2022-03-12 17:24:18 · 2401 阅读 · 0 评论 -
Flink所使用到maven依赖
Flink本身包含系统运行所需的类和依赖项,如协调、网络、检查点、故障转移、操作、资源管理等<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-core</artifactId> <version>1.9.0</version></dependency>java版本依赖: <d原创 2022-03-12 14:39:46 · 5851 阅读 · 0 评论 -
Flink的定时器(EventTime和ProcessTime)
Flink定时器1、Flink当中定时器Timer的基本用法定时器Timer是Flink提供的用于感知并利用处理时间、事件事件变化的一种机制,通常在KeyedProcessFunction当中使用定时器Timer,具体步骤:在processElement()方法当中注册Timer,然后通过重写onTimer()方法作为Timer定时器出发时的回调逻辑。2、简述在Flink当中注册定时器Timer的俩种方法方式1:通过调用Context.timerService().registerProces.原创 2022-03-12 14:26:24 · 7930 阅读 · 0 评论 -
Flink之Redis的安装及RedisSink的用法
maven:<dependency> <groupId>org.apache.bahir</groupId> <artifactId>flink-connector-redis_2.11</artifactId> <version>1.0</version></dependency>redis是key-value的形式存储。redis的安装:编译安装redis到原创 2022-03-11 21:40:31 · 1531 阅读 · 0 评论 -
Flink之IntervalJoin介绍
InterValJoin算子间隔流,一条流去join另一条流去过去一段时间内的数据,该算子将keyedStream与keyedStream转化为DataStream;再给定的时间边界内(默认包含边界),相当于一个窗口,按指定的key对俩个KeyedStream进行Join操作,把符合join条件的俩个event拉倒一起,然后咋么处理右用户来决定。1、key1 == key2 && e1.timestamp +lowerBound <= e2.timestamp +upperBoun原创 2022-03-11 20:36:22 · 2243 阅读 · 0 评论 -
Flink的Union算子和Connect算子,流合并
Union算子合并多个流,新的流会包含所有流当中的数据,但是Union有一个限制,就是所有合并的流的数据类型必须是一直的,该算子总额和配合窗口使用。该算子基本和Join没没什么关系。package Flink_API;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.common.serialization.SimpleStringSchema;import org.apa原创 2022-03-11 19:34:36 · 850 阅读 · 0 评论 -
Flink的ConGroup算子介绍
ConGroup是Join的底层算子,就是Join算子也是通过CoGroup算子来实现的。CoCgoup是在同一个窗口当中对同一个key上的俩组集合进行操作,比Join算子更通用,可以实现Inner Join、LeftJoin、RightJoin的效果,CoGroup的作用基本和Join基本相同,但是有一点不一样的是,如果未能找到新来的数据与另一个流在window中存在的匹配数据,仍可将该条记录进行输出,该算子只能在window中使用,但是就Inner Join而言推荐使用Join,因为Join在策略上原创 2022-03-11 19:16:41 · 836 阅读 · 0 评论 -
Flink的双流join介绍
在flink中,双流join主要分为2中类型:window join和Interval join,window join又可以根据窗口的类型分为3中:滚动、滑动、会话窗口的双流join;window类型的join都是利用window的机制,先将数据缓存在window state中,当窗口出发计算,执行join:interval join也是利用state存储数据再处理,区别在于state中的数据有失效机制,依靠数据出发数据清理。通过join算子可以具体实现滚动窗口和滑动窗口、会话窗口:滚动窗口j原创 2022-03-11 12:39:31 · 2582 阅读 · 0 评论 -
虚拟机搭建CentOS Hadoop集群搭建(03静态ip配置以及安装jdk)
虚拟机静态ip配置:宿主机和客户机:windows上安装虚拟机,windows相当于宿主机,linux的虚拟机相当于客户机。宿主机和客户机连接方式 宿主机和客户机之间通讯 客户机是否可以访问外网 涉及网卡 桥接(bridge) 可以 不可以 VMnet0 nat(默认) 不可以 可以 VMnet8 仅主机host-only 不可以 不可以 VMnet1 (1)仅主机模式host-only这种网络连接方式的特点原创 2022-03-09 15:46:44 · 920 阅读 · 0 评论 -
Flink流处理练习
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/...原创 2022-03-04 21:36:24 · 146 阅读 · 0 评论 -
Flink批处理练习
idea、Flink、maven<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:/..原创 2022-03-04 12:25:11 · 177 阅读 · 0 评论