![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Flink 1.15.2
文章平均质量分 60
flink
新手小农
这个作者很懒,什么都没留下…
展开
-
Flink 整合 hudi
Hudi 是一个开源的大数据存储和处理框架,通过提供数据表、写入、读取、更新和删除等功能,实现了高效的增量数据处理和数据管理。它广泛应用于大数据领域,为数据湖环境下的数据操作提供了强大的支持。不仅可以存储数据,也可以将元数据存在在其中。优点:不在只依赖于分布式的文件存储系统,对分布式具有解耦合,数据的存储位置可以不用固定,数据并不是只能存储在hdfs中了。主要的作用:计算引擎可以是Spark、Flink ,存储系统可以是HDFS、OSS、S3,所以可以解除计算引擎和存储系统之间的强耦合。原创 2023-11-15 09:51:47 · 171 阅读 · 0 评论 -
Flink CDC
是一种技术,可以帮助我们实时的捕获数据库中数据的变化,并将这些变化的数据以流的形式传输到其他的系统中进行处理和存储。原创 2023-11-14 18:58:50 · 434 阅读 · 0 评论 -
Flink SQL 练习
【代码】Flink SQL 练习。原创 2023-11-13 20:55:28 · 160 阅读 · 0 评论 -
Flink SQL --Flink 整合 hive
catalog(元数据) ---> database ---> table ---> 数据 --- > 列。原创 2023-11-13 20:54:12 · 1082 阅读 · 0 评论 -
Flink SQL -- 反压
数据流中的记录可能会倾斜,因此某些聚合算子的实例必须比其他实例处理更多的记录,这会产生热点问题。本地聚合可以将一定数量具有相同 key 的输入数据累加到单个累加器中。全局聚合将仅接收 reduce 后的累加器,而不是大量的原始输入数据。1、MiniBatch 聚合的核心思想是将一组输入的数据缓存在聚合算子内部的缓冲区中。3、开启微批处理和预聚合,可以减少shuffle过程中传输的数据量,减轻下游算子计算的压力。指的是下游消费数据的速度比上游产生数据的速度要小时会出现反压,下游导致上游的Task反压。原创 2023-11-13 20:30:48 · 733 阅读 · 0 评论 -
Flink SQL -- CheckPoint
checkpoint可以定时将flink任务的状态持久化到hdfs中,任务执行失败重启可以保证中间结果不丢失。原创 2023-11-13 19:29:15 · 1479 阅读 · 0 评论 -
Flink SQL --命令行的使用(02)
因为在批处理中,数据量的大小是固定的,不会有新的数据产生,所以在做排序的时候,只需要一次排序,所以排序字段可以随便指定,但是在流处理中,数据量是源源不断的产生,当每做一次排序的时候,就需要将之前的数据都取出来存储,随着时间的推移,数据量会不断的增加,在做排序时计算量非常大。在使用的时候可以使用缓存,将数据进行缓存,但是随着时间的推移,缓存的数量就会越来大,此时就可以对缓存设置一个过期时间。2、Look Join使用的原理:是当流表中的数据发生改变的时候,就会使用关联字段维表的数据源中查询数据。原创 2023-11-13 15:36:23 · 1191 阅读 · 0 评论 -
Flink SQL -- 命令行的使用
在flink 的流处理中,使用distinct,flink需要将之前的数据保存在状态中,如果数据一直增加,状态会越来越大 状态越来越大,checkpoint时间会增加,最终会导致flink任务出问题。当一段SQL语句在被多次使用的时候,就将通过with给这个SQL起一个别名,类似于封装起来,就是为这个SQL创建一个临时的视图(并不是真正的视图),方便下次使用。c、流处理的底层是持续流的模型,上游的Task和下游的Task同时启动等待数据的到达。b、流处理的输出的结果是连续的结果。b、输出的是最终的结果。原创 2023-11-10 21:49:16 · 2706 阅读 · 0 评论 -
Flink SQL -- 概述
例如下图的表中显示的,当第一条和第二条数据数据进来的时候,此时的结果是还一条流,当第三条数据进来的时候,由于数据已经存在流中,此时就会产生两条结果,分别进行删除和更新,删除产生一个与存在流中相反的数据,与其抵消,然后再产生一个新的数据。当第一条数据进入时,会产生一条数据,此时结果表中产生第一条数据,是属于insert,当流中的第二条数据进入时,因为在结果表中并没有这条数据,所以也是属于insert的操作,当第三条数据进入的时候,此时的结果表中的数据就发生改变,数据并不是在insert,而是在update。原创 2023-11-09 21:29:48 · 687 阅读 · 0 评论 -
Flink -- 状态与容错
2、Fllink会将计算状体存储两份,一份是存储在Flink内存中,放在内存中是为了获取查询更新,因为Flink在处理数据的是过程中,计算状态会改变,第二份是通过CheckPoint将计算状态持久化的存储到Hdfs中,这样可以保证Flink任务失败的时候可以基于Hdfs中存储的计算状态恢复任务。如果任务在执行过程中失败,恢复到原先的状态,此时在将结果写入到Kafka中,就有可能会有重复的数据,想要保证数据的不重复,就在两个checkpoint中间的数据存放一个事务中。使用get(UK)检索特定的key。原创 2023-11-08 17:11:55 · 684 阅读 · 0 评论 -
Flink -- 案例分析一
【代码】Flink -- 案例分析一。原创 2023-11-07 09:20:12 · 90 阅读 · 0 评论 -
Flink -- window(窗口)
1、 ProcessingTimeSessionWindows: 处理时间的会话窗口,是针对每一个key都会统计他的数量。2、EventTimeSessionWindows: 事件时间的会话窗口(需要由时间字段和水位线)(使用的比较少)d、TumblingProcessingTimeWindows:滚动的处理时间窗口。b、SlidingProcessingTimeWindows:滑动的处理时间窗口。注意:对于事件时间,需要指定时间字段和水位线,处理时间不需要指定。原创 2023-11-06 22:07:44 · 258 阅读 · 0 评论 -
Flink -- 事件时间 & Watermark
上图表示的是以Flink的流程图,图中总共有两个并行度,每一个Task上面都带着任务的时间,在Flink中,会将任务的时间向后传递,当途中上游map(1)将任务时间传递给下游window(1)时,下面的上游map(2)也会任务时间传递给下游window(1)(上游的任务是并行的),此时下游window(1)就会产生两个任务时间,此时就会选择时间最小的时间的作为水位线。在使用事件时间的时候需要注意的是打入数据的数据时间是需要按照时间的顺序打入,否则数据就会丢失(也可以不按照顺序打入,后面有解决办法)原创 2023-11-06 21:29:25 · 550 阅读 · 0 评论 -
Flink -- 并行度
TaskManager在Flink集群中分布式运行,每个TaskManager可以运行多个Slot。Slot是TaskManager中的资源分配单位,每个Slot可以运行一个Flink任务。TaskManager是Flink中负责运行任务的工作进程,而Slot是TaskManager中可用的资源。对于一个Flink任务是有Source、Transformation和Sink等任务组成,一个任务由多个并行实例来执行,一个任务的并行实例数目被称为该任务的并行度。3、可以对每一个算子都单独的设置并行度。原创 2023-11-05 22:51:10 · 312 阅读 · 0 评论 -
Flink ON Yarn 模式 --- per job mode 与application mode的区别
这两种模式中最重要的区别就是main函数启动的位置不同,Flink任务调度的过程是将本地的代码构建成DataFlow图,然后提交到JobManager上面,对于per job mode来说是在本地创建DataFlow,然而对于application mode是在JobManager上创建DataFlow,这就是二者最主要的区别。2、此时ResourceManager接受到客户端的请求,就会分配一个nodemanager去启动ApplicationMaster,就是Flink中的JobManager。原创 2023-11-05 21:36:31 · 628 阅读 · 0 评论 -
Flink集群的搭建
2、提交任务会共用一个JobManager,动态的申请TaskManager,任务取消,TaskManager就会被释放。前面的两种模式都是一次只会服务一个任务,但是这个可以同时启动多个任务,此时就会产生一个问题,那就是如果其中某一个任务失败的化,那么后面的任务可能都会失败。1、如果业务的要是是实时的业务,那么就选择独立集群模式,因为yarn是基于Hadoop,适合做离线的。也可以使用Web来提交任务,功能与独立集群的模式基本一致,但是不同的是他是建立在Yarn的模式上。2、在本地是看不见错误的。原创 2023-11-05 22:11:32 · 306 阅读 · 0 评论 -
Flink架构
在flink中,多个TaskManager之间也是有连接的,数据会以Data Streams的形式(数据流形式)将Flink中的上游的数据传输到下游。3、Checkpoint Coordinator:因为Flink中会做checkpoint,所以Checkpoint Coordinator的主要的工作就是负责定期做checkpoint。1、主要的作用是负责任务的调度,资源的分配以及将Task任务发送到TaskManager上去执行,会收集TaskManager的Heartbeat和统计信息。原创 2023-11-05 18:29:50 · 271 阅读 · 0 评论 -
Flink--简介
*** 需求:统计班级的人数,并且将统计的数据文件存储* 因为是刚开始学习,并不适应lambda表达式,所以使用的匿名内部类的方式在学习*///首先构建flink的运行环境/***改进:因为一个并行度就会产生一个文件,为了是所有的数据都写入到一个文件中,* 将flink的并行度设置成1*///将flink的处理模式改成batch的模式//使用readTextFile的方式读取文件//将读取的数据文件进行切分统计班级的人数@Override。原创 2023-11-03 21:36:51 · 111 阅读 · 0 评论 -
Flink--实时计算
在flink是事件触发,所谓的事件触发指的是数据来一条就会处理一条数据,延时低,但是spark不能事件触发的原因是与底层的框架有关是mapreduce模型的,导致spark不能做实时任务。在日常的生活中,用户在使用系统的时候会产生数据,此时产生的数据又会又会推动系统的决策,做出的决策又会去影响用户,形成一个闭环的链。离线计算:是一种批量,高延迟,主动发起的计算任务,数据延迟处理,结果是N+1的模式。实时计算:是一种低延迟,持续,事件触发的计算任务,数据实时处理,结果实时保存。主要是微批处理,延迟比较大。原创 2023-11-02 19:51:34 · 119 阅读 · 0 评论