
flink
文章平均质量分 94
flink从入门到精通
潘小磊
功不唐捐,玉汝于成
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Flink从入门到精通之-12Flink CEP
Flink CEP 是 Flink 对复杂事件处理提供的强大而高效的应用库。本章中我们从一个简单的应用实例出发,详细讲解了 CEP 的核心内容——Pattern API 和模式的检测处理,并以案例说明了对超时事件和迟到数据的处理。最后进行了深度扩展,举例讲解了 CEP 的状态机实现,这部分大家可以只做原理了解,不要求完全实现状态机的代码。CEP 在实际生产中有非常广泛的应用。对于大数据分析而言,应用场景主要可以分为统计分析和逻辑分析。原创 2023-05-31 10:52:48 · 991 阅读 · 0 评论 -
Flink从入门到精通之-11Table API 和 SQL
Flink 的 Table API 和 SQL原创 2023-05-30 09:35:27 · 1464 阅读 · 0 评论 -
Flink从入门到精通之-10容错机制
Flink 作为一个大数据分布式流处理框架,必须要考虑系统的容错性,主要就是发生故障之后的恢复。Flink 容错机制的核心就是检查点,它通过巧妙的分布式快照算法保证了故障恢复后的一致性,并且尽可能地降低对处理性能的影响。本章中我们详细介绍了 Flink 检查点的原理、算法和配置,并且结合一致性理论与Flink-Kafka 的实际互连系统,阐述了如何用 Flink 实现流处理应用的端到端 exactly-once 状态一致性。原创 2023-05-15 17:49:44 · 1232 阅读 · 0 评论 -
Flink从入门到精通之-08多流转换
无论是基本的简单转换和聚合,还是基于窗口的计算,我们都是针对一条流上的数据进行处理的。而在实际应用中,可能需要将不同来源的数据连接合并在一起处理,也有可能需要将一条流拆分开,所以经常会有对多条流进行处理的场景。本章我们就来讨论 Flink 中对多条流进行转换的操作。简单划分的话,多流转换可以分为“分流”和“合流”两大类。目前分流的操作一般是通过侧输出流(side output)来实现,而合流的算子比较丰富,根据不同的需求可以调用 union、connect、join 以及 coGroup 等接口进行连接合原创 2023-05-05 10:16:55 · 531 阅读 · 0 评论 -
Flink从入门到精通之-07处理函数
Flink 拥有非常丰富的多层 API,而底层的处理函数可以说是最为强大、最为灵活的一种。广义上来讲,处理函数也可以认为是 DataStream API 中的一部分,它的调用方式与其他转换算子完全一致。处理函数可以访问时间、状态,定义定时操作,它可以直接触及流处理最为本质的组成部分。所以处理函数不仅是我们处理复杂需求时兜底的“大招”,更是理解流处理本质的重要一环。原创 2023-04-26 15:13:09 · 467 阅读 · 0 评论 -
Flink从入门到精通之-06Flink 中的时间和窗口
在事件时间语义下,我们不依赖系统时间,而是基于数据自带的时间戳去定义了一个时钟,用来表示当前时间的进展。于是每个并行子任务都会有一个自己的逻辑时钟,它的前进是靠数据的时间戳来驱动的。但在分布式系统中,这种驱动方式又会有一些问题。因为数据本身在处理转换的过程中会变化,如果遇到窗口聚合这样的操作,其实是要攒一批数据才会输出一个结果,那么下游的数据就会变少,时间进度的控制就不够精细了。另外,数据向下游任务传递时,一般只能传输给一个子任务(除广播外),这样其他的并行子任务的时钟就无法推进了。原创 2023-04-21 09:04:50 · 833 阅读 · 0 评论 -
Flink从入门到精通之-05 DataStream API
大多数情况下,前面的数据源已经能够满足需要。但是凡事总有例外,如果遇到特殊情况,我们想要读取的数据源来自某个外部系统,而 flink 既没有预实现的方法、也没有提供连接器,又该怎么办呢?那就只好自定义实现 SourceFunction 了。接下来我们创建一个自定义的数据源,实现 SourceFunction 接口。主要重写两个关键方法:run()和 cancel()。⚫ run()方法:使用运行时上下文对象(SourceContext)向下游发送数据;原创 2023-03-30 16:25:53 · 404 阅读 · 0 评论 -
Flink从入门到精通之-04Flink 运行时架构
要解答这个问题,我们需要先梳理一下其他框架分配任务、数据处理的过程。对于 Spark而言,是把根据程序生成的 DAG 划分阶段(stage)、进而分配任务的。而对于 Flink 这样的流式引擎,其实没有划分 stage 的必要。因为数据是连续不断到来的,我们完全可以按照数据流图建立一个“流水线”,前一个操作处理完成,就发往处理下一步操作的节点。原创 2023-03-30 10:38:10 · 592 阅读 · 0 评论 -
Flink从入门到精通之-03Flink 部署
Flink 支持多种不同的部署模式,还可以和不同的资源管理平台方便地集成。本章从快速启动的示例入手,接着介绍了 Flink 中几种部署模式的区别,并进一步针对不同的资源提供者展开讲解了具体的部署操作。在这个过程中,我们不仅熟悉了 Flink 的使用方法,而且接触到了很多内部运行原理的知识。关于 Flink 运行时组件概念的作用,以及作业提交运行的流程架构,我们会在下一章进一步详细展开。原创 2023-03-29 10:08:49 · 623 阅读 · 0 评论 -
Flink从入门到精通之-02Flink 快速上手
本章主要实现一个 Flink 开发的入门程序——词频统计 WordCount。通过批处理和流处理两种不同模式的实现,可以对 Flink 的 API 风格和编程方式有所熟悉,并且更加深刻地理解批处理和流处理的不同。另外,通过读取有界数据(文件)和无界数据(socket 文本流)进行流处理的比较,我们也可以更加直观地体会到 Flink 流处理的方式和特点。这是我们 Flink 长征路上的第一步,是后续学习的基础。有了这番初体验,想必大家会发现 Flink 提供了非常易用的 API,基于它进行开发并不是难事。原创 2023-03-27 14:36:40 · 702 阅读 · 0 评论 -
Flink从入门到精通之-01初识 Flink
Flink 是第三代分布式流处理器,它的功能丰富而强大。本章作为学习 Flink 的入门和综述,主要介绍了 Flink 的源起和应用,引出了流处理相关的一些重要概念,并通过介绍数据处理架构发展演变的过程,为读者展示了 Flink 作为新一代分布式流处理器的架构思想。最后我们还将 Flink 与时下同样火热的处理引擎 Spark 进行了对比,详细阐述了 Flink 在流处理方面的优势。原创 2023-03-10 17:56:53 · 755 阅读 · 0 评论