![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
flink
文章平均质量分 60
黑星bm
这个作者很懒,什么都没留下…
展开
-
Flink的富函数(RichFunction)和简单滚动聚合算子
RichFunction 一般情况下我们使用一个算子,如果自己写类继承接口的话,只用重写一个算子逻辑方法即可;但是有时我们需要进行一些初始化工作,或者获得上下文信息时,只用普通的算子非常的不方便; 所以Flink提供了富函数这样的同算子一样的操作方法的算子; 它的使用方法同原算子类似,但是可以多重写两个方法,这里以map举例 map 的富函数为RichMapFunction,我们可以多重写两个方法, 在使用富函数的时候,我们可以对函数的生命周期实现两个额外的方法: open(): 是富函数的初始方法。它在每原创 2021-04-12 21:22:03 · 1311 阅读 · 0 评论 -
Flink的source来源
主要用的由Kafka Source和自定义source 首先是kafka source,直接上代码 连接kafka需要的参数直接加在properties中即可,还可以加一些 properties.setProperty(“auto.offset.reset”, “latest”);这样的参数 中间的SimpleStringSchema为反序列化对象;因为数据在传输进入kafka的是会序列化,所以我们读出来的时候就要反序列化。 至于自定义函数 public static void main(String[]原创 2021-04-12 20:18:51 · 233 阅读 · 0 评论 -
关于Flink的流批一体(牛逼一体)
与Spark不同的是,Flink不但能做真正的流式计算,还能完成批计算,达到了很厉害的流批一体。 开启流批一体的方法为,在flink流环境中设置为批处理模式 当我们执行wordcount案例时,会出现一个有趣的现象,就是开启批处理后,出现频率为1的单词,不会被统计。这是因为,批处理拿到一批数据时,sum算子底层调用的reduce方法如果执行则要求至少两个数据相加才行,那么出现频率为1的单词,由于没法sum计算,则不会被统计。 ...原创 2021-04-12 19:43:54 · 1374 阅读 · 1 评论 -
Flink的ExecutionGraph(执行图)和提交流程(区分三种模式)
执行图 Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> Physical Graph。 首先 StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑结构。 这是在客户端刚开始提交任务时生成的,然后客户端还要对StreamGraph优化生成JobGraph JobGraph:是提交给 JobManager 的数据结构。主要的优化为: 将多个符合条件的节点 chai原创 2021-04-12 19:23:09 · 816 阅读 · 0 评论 -
Flink入门
首先Flink是一种事件驱动型流式处理框架,也就是说Flink是被动的接受数据的,因为有数据来才会触发后面的运行,对比spark,即使是spark streaming,也是一批一批的取数据,开启之后也能看到它在不断的打印时间戳,时间间隔为spark streaming的批次时间 Flink可以分为无界流和有界流,区别只在于API读取数据的方法, 这里以java举例,有界流使用readTextFile方法,那么就决定了他总是有个界限的,但是无界流使用socketTextStream,不断的开启一个流,没有停.原创 2021-04-11 20:48:46 · 93 阅读 · 0 评论