![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
flink
文章平均质量分 91
flink
源码挖掘机
这个作者很懒,什么都没留下…
展开
-
Flink⼤状态作业调优实践指南:Datastream 作业篇
Apache Flink 是一个开源的流处理框架,用于处理和分析实时数据流。在 Flink 中,状态管理是流处理应用的核心概念之一,它允许算子(operators)在处理事件时保持和操作状态信息。在 Flink 中,状态可以被视为算子的“记忆”,它使得算子能够在处理无界流数据时保持对历史数据的跟踪。状态可以是简单的键值对,也可以是更复杂的数据结构,如列表、集合或自定义对象。状态的更新和查询对于实现复杂的流处理逻辑至关重要。具体说来,首先,Checkpoint 是 Flink 的一种容错机制。原创 2024-06-05 15:07:01 · 569 阅读 · 0 评论 -
Flink⼤状态作业调优实践指南:Flink SQL 作业篇
本文整理自俞航翔、陈婧敏、黄鹏程老师所撰写的大状态作业调优实践指南。由于内容丰富,本文分享,主要分为以下三个部分:状态算子的产生问题诊断方法调优方法点击作为一种特定领域语言,SQL 的设计初衷是隐藏底层数据处理的复杂性,让用户通过声明式语言来进行数据操作。而Flink SQL 由于其架构的特殊性,在实现层面通常需引入状态后端 配合 checkpoint 来保证计算结果的最终一致性。原创 2024-06-05 15:08:32 · 806 阅读 · 0 评论 -
深入分析 Flink SQL 工作机制
本文整理自 Flink Forward 2020 全球在线会议中文精华版,由 Apache Flink PMC 伍翀(云邪)分享,社区志愿者陈婧敏(清樾)整理。旨在帮助大家更好地理解 Flink SQL 引擎的工作原理。原创 2024-06-05 10:13:56 · 1289 阅读 · 0 评论 -
Flink⼤状态作业调优实践指南:状态报错与启停慢篇
GeminiStateBackend是一款面向流计算场景的KV存储引擎,作为实时计算Flink版产品的默认状态存储后端(StateBackend)。性能卓越:在 Nexmark 测试中,Gemini 所有用例的性能都比 RocksDB 更优,其中约一半用例的性能领先 RocksDB 70%以上。原创 2024-06-07 10:46:55 · 976 阅读 · 0 评论 -
从一例状态引发的性能问题谈Flink状态序列化
好久不见(鞠躬最近处在转型期,每天忙到飞起,关注具体技术细节的精力自然就比较少了(上一篇许下的周更承诺也食言了 = =)。上周帮助他人快速解决了一个因误用Flink状态类型引发的性能问题,在这里做个quick notes,并简要介绍一下Flink状态序列化方面的基础知识。原创 2024-03-19 15:50:26 · 933 阅读 · 0 评论 -
Flink 学习资料
本系列课程由 Apache Flink Community China 官方出品。旨在为具备一定大数据基础、对 Apache Flink 感兴趣的同学提供系统性的入门教程,课程分为 基础篇、进阶篇、运维篇、实时数仓篇等,持续更新。PPT视频回放讲师:程鹤群(军长)(Apache Flink PMC,阿里巴巴技术专家)PPT视频回放讲师:戴资力(Apache Flink PMC)原创 2024-03-27 21:50:16 · 858 阅读 · 0 评论 -
从Dinky聊聊Flink的二次开发
这几天研究了一下Dinky,确实是一款很不错的软件,功能很强大,也很实用,可以极大的方便我们flink sql的开发工作,同时他也支持其他一些主流数据库的SQL,像starrocks。Dinky号称基于Flink二次开发,没有侵入Flink,所以这一点就值得我们学习,为了了解Dinky我自己也搭建了一套Dinky环境,确实使用起来非常舒适 ,搭建过程也是比较容易,下面简单列一下搭建过程。原创 2024-01-03 17:27:55 · 1618 阅读 · 0 评论 -
Dinky-数据开发源码详解
dinky源码将作业分类三类,common sql, flink sql 和flink jar然后调用不同方法进行提交。原创 2024-01-08 11:13:09 · 1213 阅读 · 0 评论 -
Dinky-元数据中心源码详解
我们先看看元数据中心有哪些功能,举个例子,我们先点击mysql数据源可以清楚的看到mysql数据库中有哪些库点开dinky数据库的dlink_alert_group,可以看到这个表的所有元数据信息,内容非常的全面然后点击数据查询页面可以看到这个表中的数据,也可以根据筛选条件和排序字段进行自定义查询点击SQL生成可以生成相关的DDL sql在控制台就可以自己写各种sql操作我们的数据库和表。原创 2024-01-11 16:24:42 · 1096 阅读 · 0 评论 -
Flink RocksDB状态后端优化总结
截至当前,Flink 作业的状态后端仍然只有 Memory、FileSystem 和 RocksDB 三种可选,且 RocksDB 是状态数据量较大(GB 到 TB 级别)时的唯一选择。RocksDB 的性能发挥非常仰赖调优,如果全部采用默认配置,读写性能有可能会很差。但是,RocksDB 的配置也是极为复杂的,可调整的参数多达百个,没有放之四海而皆准的优化方案。如果仅考虑 Flink 状态存储这一方面,我们仍然可以总结出一些相对普适的优化思路。本文先介绍一些基础知识,再列举方法。原创 2024-03-20 20:49:33 · 1438 阅读 · 0 评论 -
Flink源码-Task执行
里面有大约六七十个handler,如果客户端使用fink run的方式来提交一个job,最终会由WebMonitorEndpoint的submitJobHandler来处理。负责接收用户提交的jobGraph,然后启动Jobmaster。Flink集群的资源管理器,关于slot的管理和申请工作都由他负责。原创 2023-12-18 17:28:14 · 1048 阅读 · 0 评论 -
Flink-Checkpoint源码详解
Flink chcekpoint作为flink中最重要的部分,是flink精准一次性的重要保证,可以这么说flink之所以这么成功和她的checkpoint机制是离不开的。之前大概学习了一下flink的checkpoint源码,但是还是有点晕乎乎的,甚至有点不理解我们作业中设置的checkpoint配置flink是如何读取到的,并且他是如何往下传播的。原创 2023-12-05 15:36:37 · 1219 阅读 · 0 评论 -
Flink源码-Execution的生成
上一节我们分析到了在jobmaster启动后,会将JobGraph转换成ExecutionGraph,同时也会将checkpoint相关配置传给executionGraph,并且还创建了checkpointCoordinator。下面我们接着上节的地方继续往下分析。原创 2023-12-06 17:13:24 · 920 阅读 · 0 评论 -
Flink Checkpoint源码解析-1
checkpoint的执行过程分为三个阶段:启动,执行以及确认完成,其中checkpoint的启动过程由JobManager管理节点中的checkpointCoordinator组件控制。该组件会周期性的向source节点发送执行checkpoint的请求。执行频率取决于配置的checkpointInterval参数。下面我们一起来看一下checkpoint的执行过程。原创 2023-04-14 15:25:20 · 455 阅读 · 1 评论 -
从WordCount学习Flink源码-1
而我们学习Flink都是从WordCount开始的,WordCount对于现在的我们来说可能来说非常简单,但对初学者来说当时可能是我们噩梦的开始,特别是Flink的API名字相对来说都比较长,对于初学者的我们来说很容易把我们给烦死,于是我发明了这款防烦恼辅助器,设计非常的银杏,感到烦恼的小伙伴们可以对自己头上来一下就再也不会感到烦恼了(哈哈.....最近抖音刷多了,开个小玩笑)。转换算子的种类非常丰富,像我们这个案例中我们就用到了map,sum算子。没想到addSink算子更简单,直接一步到位..原创 2023-08-19 14:50:11 · 189 阅读 · 0 评论 -
Flink源码-StreamGraph的生成
上个帖子我们分析到了我们代码中算子最终会通过transformation的add方法将自身的血缘依赖添加到一个transformations这个list中,接下来我们看一下transforamtions是如何把血缘依赖放进streamgraph中.原创 2023-08-19 18:23:40 · 191 阅读 · 0 评论 -
Flink源码-JobGraph的处理和JobMaster的创建
上节我们看到了RestClusterClient上传了jobgraph和作业相关的依赖,jar包等,可是flink集群是如何获取jobgraph如何继续下一步操作的呢,今天我们接着看。原创 2023-08-27 19:41:33 · 237 阅读 · 0 评论 -
Flink源码--ExecutionGraph
在JobGraph向ExecutionGraph转化的过程中,主要的工作内容为根据Operator的并行度来拆分JobVertex,每一个JobGraph中的JobVertex对应的ExecutionGraph中的一个ExecutionJobVertex,而每一个ExecutionJobVertex根据自身并行度会拆分成多个ExecutionVertex。同时会有一个IntermediateResultPartition对象来接收ExecutionVertex的输出。原创 2023-08-30 22:13:03 · 184 阅读 · 0 评论 -
一文搞懂 Flink 网络流控与反压机制
Operator间的数据传递 本地线程数据传递 远程线程数据传递 同一线程的Operator数据传递 Buffer读写 Buffer读取 Buffer写入 内存管理 MemorySegment和Buffer MemorySegment和Buffer的读写 当我们编写一个Flink任务时,抽象来说,是在描绘一个有向图。图中的边相当于由一系列数据记录组成的数据流,图中的顶点相当于我们对数据流的处理。 接下来的内容将在自顶向下地介绍有向图中的数据流是怎么在顶点间传递的。..转载 2023-05-28 20:28:17 · 378 阅读 · 0 评论 -
Flink Aligned Checkpoint和Unaligned Checkpoint原理详解
1.Flink分布式快照流程首先我们来看一下一个简单的Checkpoint的大致流程: 暂停处理新流入数据,将新数据缓存起来。 将算子子任务的本地状态数据拷贝到一个远程的持久化存储上。 继续处理新流入的数据,包括刚才缓存起来的数据。 Flink是在Chandy–Lamport算法[1]的基础上实现的一种分布式快照算法。在介绍Flink的快照详细流程前,我们先要了解一下检查点分界线(Checkpoint Barrier)的概念。如下图所示,Checkpoint Barrier原创 2022-04-18 22:35:47 · 1985 阅读 · 0 评论 -
Flink源码--JobGraph的上传
上节我们看到了JobGraph的生成,在集群环境中,jobGraph实在客户端生成的最终需要将生成的JobGraph和其他相关依赖一起上传到集群中,flink集群才可以才可以真正运行我们的代码。原创 2023-08-27 15:33:47 · 88 阅读 · 0 评论 -
从WordCount学习Flink源码-JobGraph
上节我们看到了transformation是如何转换成streamgraph的,转换成streamgraph后flink client还需做进一步处理将streamgraph转换成jobgraph。下面我们来看一下streamgraph是如何转换成jobgrah的。streamgraph转换成jobgrah需要做以下几步:1.将streamNode转成成JobVertex2.将符合条件的streamNode chain在一起3.将streamEdge转换成jobEdge。原创 2023-08-23 20:41:55 · 229 阅读 · 0 评论 -
实时数据平台-Mysql到Mysql(Flink CDC和Debezium)
实时数据平台中经常需要跨级群间做数据的同步,这个同步不仅包括数据的实时同步,还包括表结构的实时同步。这里我们经常用到的组件是Flink CDC,从下图我们看到对于Flink CDC和Debezium的几个功能项都是支持的,区别为Flink CDC可以做分布式,Debezium只能做单机。使用Flink CDC + Flink做实时数据同步的思路:1.利用Flink CDC监控mysql的某个库下面的某张表或者多个表2.将Flink CDC读取到mysql的binlog变更数据发送到kafka中。原创 2023-09-15 16:36:40 · 875 阅读 · 0 评论