随笔分类 -  Flink

流处理框架
Flink-UDF
摘要:Flink 的 Table API 和 SQL 提供了多种自定义函数的接口,以抽象类的形式定义。当前 UDF主要有以下几类: 标量函数(Scalar Functions):将输入的标量值转换成一个新的标量值; 表函数(Table Functions):将标量值转换成一个或多个新的行数据,也就是扩展成 阅读全文

posted @ 2022-10-18 22:33 嘣嘣嚓 阅读(1072) 评论(0) 推荐(0) 编辑

Flink-基于Table的窗口、聚合操作
摘要:我们知道,窗口可以将无界流切割成大小有限的“桶”(bucket)来做计算,通过截取有限数据集来处理无限的流数据。在 DataStream API 中提供了对不同类型的窗口进行定义和处理的接口,而在 Table API 和 SQL 中,类似的功能也都可以实现。 1.窗口 1.1分组窗口(Group W 阅读全文

posted @ 2022-10-17 15:31 嘣嘣嚓 阅读(1961) 评论(0) 推荐(0) 编辑

Flink-基于Table设置事件属性
摘要:基于时间的操作(比如时间窗口),需要定义相关的时间语义和时间数据来源的信息。在Table API 和 SQL 中,会给表单独提供一个逻辑上的时间字段,专门用来在表处理程序中指示时间。 所以所谓的时间属性(time attributes),其实就是每个表模式结构(schema)的一部分。它可以在创建表 阅读全文

posted @ 2022-10-11 14:30 嘣嘣嚓 阅读(350) 评论(0) 推荐(0) 编辑

Flink-动态表和持续查询
摘要:在 Flink 中使用表和 SQL基本上跟其他场景是一样的;不过对于表和流的转换,却稍显复杂。当我们将一个 Table 转换成 DataStream 时,有“仅插入流”(Insert-Only Streams)和“更新日志流”(Changelog Streams)两种不同的方式,具体使用哪种方式取决 阅读全文

posted @ 2022-10-08 21:45 嘣嘣嚓 阅读(1080) 评论(0) 推荐(0) 编辑

Flink-Table API(概念、基础操作、流表转换)
摘要:在 Flink 提供的多层级 API 中,核心是 DataStream API,这是我们开发流处理应用的基本途径;底层则是所谓的处理函数(process function),可以访问事件的时间信息、注册定时器、自定义状态,进行有状态的流处理。DataStream API 和处理函数比较通用,有了这些 阅读全文

posted @ 2022-09-29 22:46 嘣嘣嚓 阅读(4154) 评论(1) 推荐(2) 编辑

Flink-状态一致性(如何保证exactly-once、flink+kafka端到端保证exactly-once)
摘要:当在分布式系统中引入状态时,自然也引入了一致性问题。一致性实际上是"正确性级别"的另一种说法,也就是说在成功处理故障并恢复之后得到的结果,与没有发生任何故障时得到的结果相比,前者到底有多正确?举例来说,假设要对最近一小时登录的用户计数。在系统经历故障之后,计数结果是多少?如果有偏差,是有漏掉的计数还 阅读全文

posted @ 2022-09-21 00:00 嘣嘣嚓 阅读(1551) 评论(0) 推荐(0) 编辑

Flink-State Backends(状态后端)
摘要:状态后端(State Backends) 每传入一条数据,有状态的算子任务都会读取和更新状态 由于有效的状态访问对于处理数据的低延迟至关重要,因此每个并行任务都会在本地维护其状态,以确保快速的状态访问 状态的存储、访问以及维护,由一个可插入的组件决定,这个组件就叫做状态后端(state backen 阅读全文

posted @ 2022-09-20 23:55 嘣嘣嚓 阅读(192) 评论(0) 推荐(0) 编辑

Flink-checkpoint配置及重启策略
摘要:Flink-checkpoint配置及重启策略 val env = StreamExecutionEnvironment.getExecutionEnvironment env.setParallelism(1) // checkpoint配置 env.enableCheckpointing(100 阅读全文

posted @ 2022-09-20 21:20 嘣嘣嚓 阅读(1174) 评论(0) 推荐(0) 编辑

Flink-容错机制-检查点原理和算法
摘要:一、一致性检查点(Checkpoints) Flink故障恢复机制的核心,就是应用状态的一致性检查点 有状态流应用的一致性检查点,其实就是所有任务的状态,在某个时间点的一份拷贝(一份快照);这个时间点,应该是所有任务都恰好处理完一个相同的输入数据的时候 二、从检查点恢复状态 在执行流应用程序期间,F 阅读全文

posted @ 2022-09-08 22:54 嘣嘣嚓 阅读(228) 评论(0) 推荐(0) 编辑

Flink-ProcessFunction
摘要:我们之前学习的转换算子是无法访问事件的时间戳信息和水位线信息的。而这在一些应用场景下,极为重要。例如 MapFunction 这样的 map 转换算子就无法访问时间戳或者当前事件的事件时间。 基于此,DataStream API 提供了一系列的 Low-Level 转换算子。可以访问时间戳、wate 阅读全文

posted @ 2022-09-06 22:56 嘣嘣嚓 阅读(115) 评论(0) 推荐(0) 编辑

Flink-状态管理
摘要:流式计算分为无状态和有状态两种情况。 无状态的计算观察每个独立事件,并根据最后一个事件输出结果。例如,流处理应用程序从传感器接收温度读数,并在温度超过 90 度时发出警告。 有状态的计算则会基于多个事件输出结果。以下是一些例子。 所有类型的窗口。例如,计算过去一小时的平均温度,就是有状态的计算。 所 阅读全文

posted @ 2022-09-05 22:02 嘣嘣嚓 阅读(93) 评论(0) 推荐(0) 编辑

Flink-窗口起始时间确定规则、闭窗时间计算规则
摘要:窗口何时开始 看下 TumblingEventTimeWindows 这个类 @Override public Collection<TimeWindow> assignWindows( Object element, long timestamp, WindowAssignerContext co 阅读全文

posted @ 2022-08-18 16:14 嘣嘣嚓 阅读(682) 评论(0) 推荐(0) 编辑

Flink-时间语义与Watermark
摘要:1.时间语义 Event Time:是事件创建的时间。它通常由事件中的时间戳述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,Flink 通过时间戳分配器访问事件时间戳。 Ingestion Time:是数据进入 Flink 的时间。 Processing Time:是每一个执行基于时间操 阅读全文

posted @ 2022-07-26 22:15 嘣嘣嚓 阅读(264) 评论(0) 推荐(0) 编辑

Record has Long.MIN_VALUE timestamp (= no timestamp marker). Is the time characteristic set to 'ProcessingTime', or did you forget to call 'DataStream.assignTimestampsAndWatermarks(...)
摘要:问题: Caused by: java.lang.RuntimeException: Record has Long.MIN_VALUE timestamp (= no timestamp marker). Is the time characteristic set to 'ProcessingT 阅读全文

posted @ 2022-07-19 22:29 嘣嘣嚓 阅读(977) 评论(0) 推荐(0) 编辑

Flink-Sink(Kafka、Redis、ES、JDBC)
摘要:Flink 没有类似于 spark 中 foreach 方法,让用户进行迭代的操作。虽有对外的输出操作都要利用 Sink 完成。最后通过类似如下方式完成整个任务最终输出操作。 stream.addSink(new MySink(xxxx)) 官方提供了一部分的框架的 sink。除此以外,需要用户自定 阅读全文

posted @ 2022-07-01 14:46 嘣嘣嚓 阅读(328) 评论(0) 推荐(0) 编辑

Flink-富函数(Rich Functions)
摘要:4.富函数(Rich Functions) 4.1 函数类(Function Classes) Flink 暴露了所有 udf 函数的接口(实现方式为接口或者抽象类)。例如MapFunction, FilterFunction, ProcessFunction 等等。 下面例子实现了 FilterF 阅读全文

posted @ 2022-06-08 22:30 嘣嘣嚓 阅读(1263) 评论(0) 推荐(0) 编辑

Flink-Transform(转换)
摘要:书接上回。 3.Transform 转换算子【代码示例统一放在最后边】 3.1 map val streamMap = stream.map { x => x * 2 } 3.2 flatMap flatMap 的函数签名:def flatMap[A,B](as: List[A])(f: A ⇒ L 阅读全文

posted @ 2022-06-08 22:00 嘣嘣嚓 阅读(174) 评论(0) 推荐(0) 编辑

Flink-Source(数据源)
摘要:1.Environment 1.1 getExecutionEnvironment 创建一个执行环境,表示当前执行程序的上下文。 如果程序是独立调用的,则此方法返回本地执行环境;如果从命令行客户端调用程序以提交到集群,则此方法返回此集群的执行环境,也就是说,getExecutionEnvironme 阅读全文

posted @ 2022-06-06 23:09 嘣嘣嚓 阅读(89) 评论(0) 推荐(0) 编辑

Flink-任务调度原理
摘要:任务调度图示 客户端不是运行时和程序执行的一部分,但它用于准备并发送dataflow(JobGraph)给Master(JobManager),然后,客户端断开连接或者维持连接以等待接收计算结果。当Flink集群启动后,首先会启动一个JobManger和一个或多个的TaskManager。由Clie 阅读全文

posted @ 2022-06-01 22:13 嘣嘣嚓 阅读(485) 评论(0) 推荐(0) 编辑

Flink-任务提交流程
摘要:运行时架构 各组件的交互: 上图是从一个较为高层级的视角,来看应用中各组件的交互协作。如果部署的集群环境不同(例如 YARN,Mesos,Kubernetes,standalone 等),其中一些步骤可以被省略,或是有些组件会运行在同一个 JVM 进程中。 具体地,如果我们将 Flink 集群部署到 阅读全文

posted @ 2022-05-30 22:57 嘣嘣嚓 阅读(183) 评论(0) 推荐(0) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示