
flink
北北carrie
永远不怕出现bug的小白一枚!
展开
-
FlinkSQl
区别:executeSQL直接执行sql语句的接口,接口返回的是一个TableResult executeSQL追踪整个接口调用流程SQLQuery不会真正的执行SQL语句,需要后续调用Table#execute()才会真正执行,接口返回的是一个Table表对象~executeSQL: 返回TableResult结果集~SQLQuery: 返回Table表对象原创 2023-04-18 21:30:34 · 375 阅读 · 0 评论 -
有关FlinkAPI如何使用IntervalJoin
3. 需求: 源数据从指定的端口中获取, 分别创建员工流数据和部门流数据, 并指定水位线以及提取事件时间字段(流处理环境和并行度略过,该案例的并行度为方便测试设置为1)~~~ 关于IntervalJoin时是哪条流join哪条流,这两条流的先后顺序没有区别,也不会发生数据重复, 因为调用IntervalJoin在底层底层实现的双向调用。~~~ 采用IntervalJoin进行关联,IntervalJoin的前提是两条流的数据都需要先进行keyby分组,这里是按照部门编号分组的。1. 准备一个员工实体类。原创 2023-04-18 10:56:22 · 184 阅读 · 0 评论 -
flink小点
max/min/maxby/minby/sum操作。keyby之后的操作叫做。开窗以后的这些操作叫做。原创 2023-04-03 18:15:23 · 77 阅读 · 0 评论 -
Flink中max maxby区别
取指定字段的当前的最大值,如果有多个字段,其他字段以最大值那条数据为准;:取指定字段的当前的最小值,如果有多个字段,其他字段以最大值那条数据为准;:取指定字段的当前的最大值,如果有多个字段,其他非比较字段,以第一条为准。:取指定字段的当前的最小值,如果有多个字段,其他非比较字段,以第一条为准。原创 2023-03-30 10:13:28 · 206 阅读 · 0 评论 -
水位线的特点
``一个水位线, 表示当前时间已经达到了这个时间戳t,代表t时间之前的数据到齐了不会再出现小于这个时间戳的数据。```水位线的内容就是一个时间戳,表示当前事件时间的进展。```水位线可以设置延迟保证正确处理乱序数据。```水位线是插入到数据流的一个标记。```水位线是基于数据的时间戳生成的。```水位线的时间戳必须单调递增。原创 2023-03-09 10:26:02 · 121 阅读 · 0 评论 -
Flink并行度优先级
默认的最大并行度是近似于operatorParallelism + (operatorParallelism / 2),下限是127,上线是32768.并行度改变会影响任务划分,进而影响task数量,如果taskslots数量不满足要求,会导致任务没有足够的资源分配。setParallelism()设置的并行度需要小于.setMaxParallelism()设置的最大并行度。某些算子无法设置并行度,如socketTextStream。1.代码中设置setParallelism()原创 2023-03-07 19:15:06 · 969 阅读 · 0 评论 -
Flink提交流程总结
Yarn的ResourceManager启动TaskManager, TaskManager会启动一个TaskExecutor, 并向ResourceManager注册slot, ResourceManager收到TaskManager的请求之后会给TaskExecutor返回分配的slot, TaskExecutor给JobManager提供slot, JobManger向TaskExecutor提交执行。JobMaster: 是JobManager中最核心的组件。注: YarnClient: 客户端。原创 2023-03-07 17:17:20 · 219 阅读 · 0 评论 -
Flink运行时架构
客户端的工作原理: 调用程序的main()方法,将代码转换成"数据流图",并且最终生成作业图,一并发送给JM. 提交之后,任务的执行和客户端就没关系了.当然客户端是否断开与JM的连接是可以选择的,也可以让继续保持连接.客户端可以随时连接到JobManager,获取当前作业的状态和执行结果,也可以发送请求取消作业。所以JobMaster和具体的Job是一一对应的,多个Job可以同时运行在一个Flink集群中, 每个Job都有一个自己的JobMaster。:客户端不属于处理系统的一部分,只负责作业的提交.原创 2023-03-07 16:48:22 · 155 阅读 · 0 评论 -
Flink模式
如果TaskManager进程异常退出,JobManager会收到消息并且重新向Yarn ResourceManager 申请资源,重新启动TaskManager。4.TaskManager启动一个线程开始执行. TaskManager会向JobManager报告状态更改,比如开始执行, 正在执行或者已经完成。3.JobManager负责协调资源和作业执行. 资源分配完成之后,任务将提交给相应的TaskManager。3.flink on yarn 有三种模式:会话模式,但作业模式,应用模式。原创 2023-03-06 20:27:35 · 249 阅读 · 0 评论 -
流处理环境为什么设置ttl?
为什么要设置: 如果我们在数据流上进行分组查询,分组处理产生的结果(不仅仅是聚合结果)会作为中间状态存储下来。随着分组key的不断增加,状态自然也会不断膨胀。但是这些状态数据基本都有时效性,不必永久保留。例如,使用Top-N语法进行去重,重复数据的出现一般都位于特定区间内(例如一小时或一天内),过了这段时间之后,对应的状态就不再需要了。Flink SQL提供的idle state retention time特性可以保证当状态中某个key对应的数据未更新的时间达到阈值时,该条状态被自动清理。原创 2023-02-05 22:39:16 · 205 阅读 · 0 评论 -
完整的Flink程序基本内容
获取执行环境 (execution environment)~定义数据的转换操作 (transformations)~定义计算结果的输出位置 (sink)~触发程序执行 (execute)~读取数据源 (source)一个Flink程序, -其实就是对于DataStream的各种转换.DataStream API是Flink的核心层API.原创 2023-01-06 21:44:12 · 207 阅读 · 0 评论