
Flink
文章平均质量分 85
该专栏主要是介绍Apache Flink 框架的使用、部署、API、等概念
ayt007
这个作者很懒,什么都没留下…
展开
-
【Flink源码分析】6. Flink1.19源码分析-Flink底层的异步通信
仅摘取了 Flink RPC 进行通信的时候一段代码,也是异步通信的典型代码。原创 2025-02-10 15:28:07 · 339 阅读 · 0 评论 -
【Flink源码分析】5. Flink1.19源码分析-异步编程(CompletableFuture)
runAfterEither与runAfterBoth的主要区别在于,它不需要两个CompletableFuture都完成;只需要其中一个完成就会执行Runnable。原创 2025-02-10 14:37:24 · 1140 阅读 · 0 评论 -
【Flink源码分析】3. Flink1.19源码分析-精通动态代理
定义一个接口定义接口实现类定义 InvocationHandler定义服务,在服务中调用 Proxy.newProxyInstance() 方法创建动态代理。原创 2025-02-07 16:54:10 · 1039 阅读 · 0 评论 -
【Flink系列】10. Flink SQL
10. Flink SQLTable API和SQL是最上层的API,在Flink中这两种API被集成在一起,SQL执行的对象也是Flink中的表(Table),所以我们一般会认为它们是一体的。Flink是批流统一的处理框架,无论是批处理(DataSet API)还是流处理(DataStream API),在上层应用中都可以直接使用Table API或者SQL来实现;这两种API对于一张表执行相同的查询操作,得到的结果是完全一样的。我们主要还是以流处理应用为例进行讲解。需要说明的是,Table API原创 2025-01-16 16:12:36 · 1137 阅读 · 0 评论 -
【Flink系列】9. Flink容错机制
在Flink中,有一套完整的容错机制来保证故障后的恢复,其中最重要的就是检查点。“随时存档”确实恢复起来方便,可是需要我们不停地做存档操作。如果每处理一条数据就进行检查点的保存,当大量数据同时到来时,就会耗费很多资源来频繁做检查点,数据处理的速度就会受到影响。所以在Flink中,检查点的保存是周期性触发的,间隔时间可以进行设置。我们应该在所有任务(算子)都恰好处理完一个相同的输入数据的时候,将它们的状态保存下来。这样做可以实现一个数据被所有任务(算子)完整地处理完,状态得到了保存。如果出现故障,我们恢复原创 2025-01-16 15:21:55 · 1074 阅读 · 0 评论 -
【Flink系列】8. 状态管理
Flink的状态有两种:托管状态(Managed State)和原始状态(Raw State)。托管状态就是由Flink统一管理的,状态的存储访问、故障恢复和重组等一系列问题都由Flink实现,我们只要调接口就可以;而原始状态则是自定义的,相当于就是开辟了一块内存,需要我们自己管理,实现状态的序列化和故障恢复。通常我们采用Flink托管状态来实现需求。原创 2025-01-16 15:05:11 · 973 阅读 · 0 评论 -
【Flink系列】6. Flink中的时间和窗口
在Flink中,用来衡量事件时间进展的标记,就被称作“水位线”(Watermark)。具体实现上,水位线可以看作一条特殊的数据记录,它是插入到数据流中的一个标记点,主要内容就是一个时间戳,用来指示当前的事件时间。而它插入流中的位置,就应该是在某个数据到来之后;这样就可以从这个数据中提取时间戳,作为当前水位线的时间戳了。周期性生成器一般是通过onEvent()观察判断输入的事件,而在onPeriodicEmit()里发出水位线。原创 2025-01-16 14:20:35 · 1346 阅读 · 0 评论 -
【Flink系列】5. DataStream API
5. DataStream APIDataStream API是Flink的核心层API。一个Flink程序,其实就是对DataStream的各种转换。具体来说,代码基本上都由以下几部分构成:5.1 执行环境(Execution Environment)Flink程序可以在各种上下文环境中运行:我们可以在本地JVM中执行程序,也可以提交到远程集群上运行。不同的环境,代码的提交运行的过程会有所不同。这就要求我们在提交作业执行计算时,首先必须获取当前Flink的运行环境,从而建立起与Flink框架之间原创 2025-01-16 11:46:29 · 953 阅读 · 0 评论 -
【Flink系列】4. Flink运行时架构
Flink运行时架构——Standalone会话模式为例。原创 2025-01-16 11:15:38 · 1611 阅读 · 0 评论 -
【Flink系列】3. Flink部署
打包完成后,在target目录下即可找到所需JAR包,JAR包会有两个,FlinkTutorial-1.0-SNAPSHOT.jar和FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar,因为集群中已经具备任务运行所需的所有依赖,所以。这里我们所讲到的部署模式,相对是比较抽象的概念。主要配置程序入口主类的全类名,任务运行的并行度,任务运行所需的配置参数和保存点路径等,如下图所示,配置完成后,即可点击按钮“Submit”,将任务提交到集群运行。原创 2025-01-16 11:01:07 · 1218 阅读 · 0 评论 -
【Flink系列】2. Flink快速上手
在准备好所有的开发环境之后,我们就可以开始开发自己的第一个Flink程序了。首先我们要做的,就是在IDEA中搭建一个Flink项目的骨架。我们会使用Java项目中常见的Maven来进行依赖管理。原创 2025-01-16 10:37:35 · 1211 阅读 · 0 评论 -
【Flink系列】1.概述
Flink的官网主页地址:https://flink.apache.org/原创 2025-01-16 10:26:15 · 480 阅读 · 0 评论