
flink
文章平均质量分 62
逃跑的沙丁鱼
奋力起飞的菜鸟
展开
-
19-flink-1.10.1-Table API 和 Flink SQL 的 函数
89原创 2021-11-06 23:27:30 · 1726 阅读 · 1 评论 -
18-flink-1.10.1-Table API & Flink SQL
1Table API 和Flink SQL 是什么Flink 对流处理和批处理,提供了统一的上层APITable API 是一套内嵌在Java 和Scala 语言中的查询API,它允许以非常直观的方式组合来自一些关系院选符的查询Flink 的SQL支持基于实现了SQL标准的Apache calcite2 简单使用table api 和 flink SQL2.1 引入依赖① flink-table-common通过自定义函数,格式等扩展表生态系统的通用模块。② flink-..原创 2021-11-03 23:50:08 · 791 阅读 · 0 评论 -
17-flink-1.10.1-flink 状态一致性
1原创 2021-10-24 17:16:21 · 779 阅读 · 0 评论 -
16-flink-1.10.1-flink 容错机制
1 一致性检查点(checkpoint)2 从检查点恢复状态3 flink 检查点算法设置重启策略4 保存点(save points)原创 2021-10-23 23:02:19 · 185 阅读 · 0 评论 -
15-flink-1.10.1-flink 状态后端
1 状态后端保存状态有专门的一个组件来做。不需要我们额外开发2选择一种方式的状态后端需要根据自己的业务需要选择一种适合自己的状态后端方式3 状态后端的设置3.1MemoryStateBackendenv.setStateBackend(new MemoryStateBackend()) // MemoryStateBackend3.2FsStateBackendenv.setStateBackend(new FsStateBackend("/date/...原创 2021-10-23 15:51:09 · 132 阅读 · 0 评论 -
14-flink-1.10.1-flink ProcessFunction API
1 ProcessFunction API我们之前学的转换算子是无法获取访问时间的时间搓信息和水位线信息的。而这在一些应用场景下,极为总要,例如MapFunction这样的map转换算子就无法访问时间戳或者当前时间的事件时间。基于此,DataStream API 提供了一些列的Low-level转换算子。可以访问时间戳,watermark以及注册定时事件。还可以输出特定的一些事件。例如超时时间等。process function 用来构建事件驱动的应用以及实现自定义的业务逻辑(使用之前的windo.原创 2021-10-17 16:19:51 · 154 阅读 · 0 评论 -
13-flink-1.10.1-Flink状态管理
1 Flink 中的状态由一个任务维护,并且用来计算某个结果的所有数据,都属于这个认为的状态 可以认为状态就是一个本地变量,可以被任务的业务逻辑访问,(我们自己定义的简单的本地变量是不可以的,因为flink是分布式的,要保证状态一致性需要序列化反序列化,flink底层已经实现一套机制。) Flink会进行状态管理,包括状态一致性,故障处理以及高效存储和访问,以便开发人员专注于应用程序的逻辑 其实对于一些简单的算子比如map filter 可以没有状态,一些复查的算子比如reduce,比如窗口.原创 2021-10-16 22:50:09 · 410 阅读 · 0 评论 -
12-flink-1.10.1-Flink中的时间语义和watermark
1 Fink 中的时间语义Event Time :事件产生的时候的时间,比如日志访问日志产生的时间Ingestion Time: 数据进入flink的时间Processing Time:执行操作算子的本地系统时间,与机器无关1.1 哪种时间语义更重要不同的时间语义有不同的应用场景我们往往更关心事件的时间(Event Time)用星球大战电影拍摄举例说明 比如上面的星球大战系列电影,如果我们想统计的的是事件发生的先后顺序呢那就要关注电影情节里故事发生的...原创 2021-10-07 15:11:25 · 411 阅读 · 0 评论 -
11-flink-1.10.1- Flink window API
1 window api 概念一半真实的流都是无界的,怎样处理无界的流? 可以把无界的流进行切分,得到有限的数据集进行处理-也就是得到了有界的流进行处理。 窗口就是将无限流切割成有限流的一种方式,它会将有限的流分发到有限大小的桶里(bucket)进行处理2 window api 类型2.1 时间窗口(Time Window) (1)滚动的时间窗口将数据依据固定的时间窗口长度对数据进行切分 时间固定,窗口长度相同,没有重叠 (2)滑动的时间窗口...原创 2021-09-25 00:12:28 · 152 阅读 · 0 评论 -
10-flink-1.10.1- flink Sink api 输出算子
1 flink sink2 file sinkpackage com.study.liucf.unbounded.sinkimport com.study.liucf.bean.LiucfSensorRedingimport org.apache.flink.api.common.serialization.SimpleStringEncoderimport org.apache.flink.core.fs.Pathimport org.apache.flink.streaming.原创 2021-09-13 23:47:45 · 406 阅读 · 0 评论 -
09-flink-1.10.1- flink的编程风格UDF函数
1 实现UDF函数可以更细粒度的对流进行控制flink暴露了所有udf函数的接口,实现方式是接口或者抽象类比如MapFunction,FilterFunction,ProcessFunction等等。我们很容易在flink的算子里发现所有的算子都有两份重载的函数,①一个可以直接传入一个lamda表达式,②一个可以传入一个函数类,这里的UDF函数说的就是②说说的函数类package com.study.liucf.unbounded.udfimport com.study.liucf.bea原创 2021-09-12 23:50:26 · 223 阅读 · 0 评论 -
08-flink-1.10.1- flink Transform api 转换算子
1 简单转换算子1.1 map来一个处理一个,one by one1.2 flatMap相当于先进行map操作后又进行了flat一个扁平化的操作,可以简单理解成列传行的操作1.3 filter返回true才继续往下传递数据2 键控流转换算子2.1 keyby同一个分区里有不同key的元素,但是同一个key的元素肯定要进入同一个分区2.2 滚动聚合算子 rolling aggregation为什么叫做滚动聚合算子呢,是数据源源...原创 2021-09-10 00:07:32 · 209 阅读 · 0 评论 -
07-flink-1.10.1- 用户自定义 flink source api
1 定义自己想要的流返回值数据类型package com.study.liucf.unbounded.source/** * @Author liucf * @Date 2021/9/8 */case class LiucfSensorReding(id:String,timestamp:Long,temperature:Double)2 定义自己的读取数据源的类package com.study.liucf.unbounded.sourceimport java.util原创 2021-09-08 23:48:50 · 165 阅读 · 0 评论 -
06-flink-1.10.1-flink source api
1 flink 从集合中读取数据1.1 代码package com.study.liucf.bounded.api.sourceimport org.apache.flink.streaming.api.scala._/** * @Author liucf * @Date 2021/9/5 */case class SensorReding(id:String,timeStamp:Long,temperature:Double)object CollectionSource {原创 2021-09-05 22:54:12 · 241 阅读 · 0 评论 -
05-flink-1.10.1-flink on yarn 流处理WordCount
1 启动相应服务① 启动 hdfs ,启动yarn② 事先部署好flink2 打包WordCount代码成jar包3 上传打包好的jar到客户端机器4 flink on yarn4.1 session clusterSession-cluster模式需要先启动集群,然后在提交作业,接着会向yarn申请一块空间,资源永远保持不变,如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交,所有作业共享...原创 2021-08-31 00:06:59 · 411 阅读 · 2 评论 -
04-flink-1.10.1-流处理WordCount代码里控制并行度
接续03-flink-1.10.1-流处理WordCount1 为什么同一个单词总是在同一个线程里打印输入单词输出可见hello这个单词多次输入总是在线程好3里输出这是为什么呢?这是因为flink实际后台是对单词分别做了hash处理,通过观察应该是先取单词的hash值然后用对处理数据的线程数(并行度)取模/取余的到的索引hello总是会进入线程3打印2 设置全局并行度参数 /**创建flink流式处理环境*/ val env: StreamExecutio...原创 2021-08-20 23:34:32 · 250 阅读 · 0 评论 -
03-flink-1.10.1-流处理WordCount
目录1 开启一个本地9999的TCP协议端口2 编写第一个flink流处理代码3 验证1 开启一个本地9999的TCP协议端口可以自己在linux 或者windows里安装nmap-ncat由客户端主动发起连接,一旦连接必须由服务端发起关闭[liucf@node1 ~]$ nc -l 99992 编写第一个flink流处理代码package com.study.liucf.unboundedimport org.apache.flink.api.java...原创 2021-08-16 23:50:39 · 165 阅读 · 0 评论 -
02-flink-1.10.1-离线开发WordCount
package com.study.liucf.boundedimport org.apache.flink.api.scala.ExecutionEnvironmentimport org.apache.flink.api.scala._/** * @Author liucf * @Date 2021/8/15 * flink1.10.1以Wordcount为例处理离线有界数据 * 一共分为4步: * ① 构建flink离线执行环境 * .原创 2021-08-15 22:56:54 · 190 阅读 · 0 评论 -
01-flink-1.10.1开发flink代码需要的maven依赖
1 flink-scala依赖 <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.12</artifactId> <version>1.10.1</version> </dependency>2flink-streaming-scala<depen.原创 2021-08-15 22:27:08 · 808 阅读 · 0 评论