
Flink
sghuu
这个作者很懒,什么都没留下…
展开
-
基于FlinkCDC 和upsert-kafka的flinkSQL的纬度表关联
基于FlinkCDC 和upsert-kafka的flinkSQL的纬度表关联一、数据存入kafka作为纬度表关联要想存入kafka的数据能在多个程序中作为纬度表关联使用,则必须要保存全量的的纬度数据在kafka中,这就要求kafka的日志清理策略不能为delete,因为这种策略会删除历史数据且无法证每个join的key保留到最新的数据,所以需要采用compact的清理策略,相同key的数据至少会保留一条最新的数据,这个清理策略的触发由相关参数控制。创建topic的测试实例 相关参数可进行调整./k原创 2021-05-14 18:16:18 · 1378 阅读 · 0 评论 -
FlinkCDC从mysql -kafka-es同步数据时遇到的问题
2021-01-12 01:12:15,551 INFO org.apache.kafka.clients.consumer.internals.SubscriptionState [] - [Consumer clientId=consumer-10, groupId=null] Resetting offset for partition mysql2es_t_bank_question-1 to offset 0.2021-01-12 01:12:15,924 ERROR org.apache.f原创 2021-01-12 14:56:01 · 2189 阅读 · 0 评论 -
Flink的端到端的一致性保证以及二阶段提交
Flink的端到端的一致性保证状态一致性:有状态的流处理,内部每个算子都可以有自己的状态对于处理器内部而言,所谓的状态一致性,其实就是我们所说的计算的结果要保证准确一条数据都不应该丢失,也不应该重复计算同一个数据在遇到故障时可以恢复,恢复之后重新计算,计算的结果也应该正确不受影响故障恢复时的三种一致性要求:AT-MOST-ONCE(最多一次)当任务故障时,最简单的做法是什么都不干,...原创 2019-12-25 21:01:51 · 2478 阅读 · 0 评论 -
kafka-flink-kafka端到端状态一致性的保证
内部 —— 利用 checkpoint 机制,把状态存盘,发生故障的时候可以恢复,保证内部的状态一致性source —— kafka consumer 作为 source,可以将偏移量保存下来,如果后续任务出现了故障,恢复的时候可以由连接器重置偏移量,重新消费数据,保证一致性flink在消费kafka的数据时,在恢复状态时并不会使用kafka自己维护的offset,假设:使用kafka自己维护...原创 2019-12-25 21:01:04 · 1579 阅读 · 0 评论 -
Flink对迟到数据的处理的三种方式
**Flink对迟到数据的处理**水位线可以用来平衡计算的完整性和延迟两方面。除非我们选择一种非常保守的水位线策略(最大延时设置的非常大,以至于包含了所有的元素,但结果是非常大的延迟),否则我们总需要处理迟到的元素。迟到的元素是指当这个元素来到时,这个元素所对应的窗口已经计算完毕了(也就是说水位线已经没过窗口结束时间了)。这说明迟到这个特性只针对事件时间。DataStream API提供...原创 2019-12-25 19:48:00 · 6542 阅读 · 0 评论 -
Flink的触发器Trigger介绍和使用
触发器定义了window何时会被求值以及何时发送求值结果。触发器可以到了特定的时间触发也可以碰到特定的事件触发。例如:观察到事件数量符合一定条件或者观察到了特定的事件。默认的触发器将会在两种情况下触发处理时间:机器时间到达处理时间事件时间:水位线超过了窗口的结束时间触发器可以访问流的时间属性以及定时器,还可以对state状态编程。所以触发器和process function一样强大。例如我...原创 2019-12-25 19:13:48 · 8138 阅读 · 3 评论 -
Flink的时间和窗口的使用、水位线的设置
Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,Flink通过时间戳分配器访问事件时间戳。Ingestion Time:是数据进入Flink的时间。Processing Time:是每一个执行基于时间操作的算子的本地系统时间,与机器相关,默认的时间属性就是Processing Time。window分为两大类:Co...原创 2019-12-25 14:03:05 · 3151 阅读 · 1 评论 -
Flink的状态介绍和有状态的计算
**Flink的状态介绍**Flink的状态指的是1.维护的状态变量,键控状态值状态(Value state)为每个键存储一个任意类型的单个值。复杂数据结构也可以存储为值状态。列表状态(List state)为每个键存储一个值的列表。列表里的每个数据可以是任意类型。映射状态(Map state)为每个键存储一个键值映射(map)。map的key和value可以是任意类型。2....原创 2019-12-25 13:13:43 · 3333 阅读 · 0 评论 -
flink的一致性检查点三种算法
**flink的一致性检查点算法**Flink的恢复机制的核心就是应用状态的一致性检查点,有状态流的一致性检查点,其实就是所以状态在某个时间点的一份快照拷贝,而这个时间点应该是所有任务都恰好处理完同一个输入数据。一般常见的检查点算法:方法一:常用的某个时间点的快照1)暂停所有输入流的摄取有,也就是不接受性的数据输入2)等待所有摘出来的数据计算完毕,这就意味者结束时,所有任务都已经处理...原创 2019-12-25 09:38:24 · 1274 阅读 · 0 评论 -
Flink的架构
**Flink的架构**组件Flink运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作:作业管理器(JobManager)、资源管理器(ResourceManager)、任务管理器(TaskManager),以及分发器(Dispatcher)。因为Flink是用Java和Scala实现的,所以所有组件都会运行在Java虚拟机(JVMs)上。每个组件的职责如下:作业...原创 2019-12-23 21:30:49 · 210 阅读 · 0 评论 -
Flink的任务失败以及结果的保证介绍
在执行之前,流程序将会被翻译成物理层数据流图,物理层数据流图由连接的并行任务组成,而一个并行任务运行一些运算符逻辑,消费输入流数据,并为其他任务产生输出流数据。真实场景下,可能有数百个这样的任务并行运行在很多的物理机器上。在长时间的运行中,流任务中的任意一个任务在任意时间点都有可能失败。我们如何保证任务的失败能被正确的处理,以使任务能继续的运行下去呢?事实上,我们可能希望我们的流处理器不仅能在任务...原创 2019-12-23 21:19:44 · 1191 阅读 · 0 评论 -
Flink的简介
Flink的简介Apache Flink是第三代分布式流处理器,它拥有极富竞争力的功能。它提供准确的大规模流处理,具有高吞吐量和低延迟。特别的是,以下功能使Flink脱颖而出:事件时间(event-time)和处理时间(processing-tme)语义。即使对于无序事件流,事件时间(event-time)语义仍然能提供一致且准确的结果。而处理时间(processing-time)语义可用于具...原创 2019-12-23 21:06:46 · 199 阅读 · 0 评论 -
flink任务提交的流程
**flink任务提交的流程**flink提交任务后,Client向HDFS上传Flink的jar包和配置,之后向Yarn ResourceManager提交任务,ResourceManager分配Container资源并通知对应的NodeManager启动相应的ApplicationMaster,ApplicationMaster启动后加载Flink的Jar包和配置构建环境,然后启动Jo...原创 2019-12-16 21:14:10 · 899 阅读 · 0 评论