自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 Flink源码学习资料

由于源码分析系列文档较多,本人绘制了Flink文档脑图。和下面的文档目录对应。各位读者可以选择自己感兴趣的模块阅读并参与讨论。此脑图不定期更新中……

2024-07-17 11:11:51 756 1

原创 Flink Sql Redis Connector

以下为sql读取结果,直接将redis数据解析成我们需要的表格形式。

2024-06-20 20:04:14 1185

原创 Flink Sql-用户自定义 Sources & Sinks

在许多情况下,开发人员不需要从头开始创建新的连接器,而是希望稍微修改现有的连接器或 hook 到现有的 stack。在其他情况下,开发人员希望创建专门的连接器。本节对这两种用例都有帮助。它解释了表连接器的一般体系结构,从 API 中的纯粹声明到在集群上执行的运行时代码实心箭头展示了在转换过程中对象如何从一个阶段到下一个阶段转换为其他对象。

2024-06-13 09:30:51 1090 2

原创 Flink⼤状态作业调优实践指南:状态报错与启停慢篇

GeminiStateBackend是一款面向流计算场景的KV存储引擎,作为实时计算Flink版产品的默认状态存储后端(StateBackend)。性能卓越:在 Nexmark 测试中,Gemini 所有用例的性能都比 RocksDB 更优,其中约一半用例的性能领先 RocksDB 70%以上。

2024-06-07 10:46:55 1061

原创 Flink⼤状态作业调优实践指南:Flink SQL 作业篇

本文整理自俞航翔、陈婧敏、黄鹏程老师所撰写的大状态作业调优实践指南。由于内容丰富,本文分享,主要分为以下三个部分:状态算子的产生问题诊断方法调优方法点击作为一种特定领域语言,SQL 的设计初衷是隐藏底层数据处理的复杂性,让用户通过声明式语言来进行数据操作。而Flink SQL 由于其架构的特殊性,在实现层面通常需引入状态后端 配合 checkpoint 来保证计算结果的最终一致性。

2024-06-05 15:08:32 843

原创 Flink⼤状态作业调优实践指南:Datastream 作业篇

Apache Flink 是一个开源的流处理框架,用于处理和分析实时数据流。在 Flink 中,状态管理是流处理应用的核心概念之一,它允许算子(operators)在处理事件时保持和操作状态信息。在 Flink 中,状态可以被视为算子的“记忆”,它使得算子能够在处理无界流数据时保持对历史数据的跟踪。状态可以是简单的键值对,也可以是更复杂的数据结构,如列表、集合或自定义对象。状态的更新和查询对于实现复杂的流处理逻辑至关重要。具体说来,首先,Checkpoint 是 Flink 的一种容错机制。

2024-06-05 15:07:01 588

原创 深入分析 Flink SQL 工作机制

本文整理自 Flink Forward 2020 全球在线会议中文精华版,由 Apache Flink PMC 伍翀(云邪)分享,社区志愿者陈婧敏(清樾)整理。旨在帮助大家更好地理解 Flink SQL 引擎的工作原理。

2024-06-05 10:13:56 1318

原创 Flink 学习资料

本系列课程由 Apache Flink Community China 官方出品。旨在为具备一定大数据基础、对 Apache Flink 感兴趣的同学提供系统性的入门教程,课程分为 基础篇、进阶篇、运维篇、实时数仓篇等,持续更新。PPT视频回放讲师:程鹤群(军长)(Apache Flink PMC,阿里巴巴技术专家)PPT视频回放讲师:戴资力(Apache Flink PMC)

2024-03-27 21:50:16 862

原创 Flink RocksDB状态后端优化总结

截至当前,Flink 作业的状态后端仍然只有 Memory、FileSystem 和 RocksDB 三种可选,且 RocksDB 是状态数据量较大(GB 到 TB 级别)时的唯一选择。RocksDB 的性能发挥非常仰赖调优,如果全部采用默认配置,读写性能有可能会很差。但是,RocksDB 的配置也是极为复杂的,可调整的参数多达百个,没有放之四海而皆准的优化方案。如果仅考虑 Flink 状态存储这一方面,我们仍然可以总结出一些相对普适的优化思路。本文先介绍一些基础知识,再列举方法。

2024-03-20 20:49:33 1507

原创 从一例状态引发的性能问题谈Flink状态序列化

好久不见(鞠躬最近处在转型期,每天忙到飞起,关注具体技术细节的精力自然就比较少了(上一篇许下的周更承诺也食言了 = =)。上周帮助他人快速解决了一个因误用Flink状态类型引发的性能问题,在这里做个quick notes,并简要介绍一下Flink状态序列化方面的基础知识。

2024-03-19 15:50:26 934

原创 Dinky-元数据中心源码详解

我们先看看元数据中心有哪些功能,举个例子,我们先点击mysql数据源可以清楚的看到mysql数据库中有哪些库点开dinky数据库的dlink_alert_group,可以看到这个表的所有元数据信息,内容非常的全面然后点击数据查询页面可以看到这个表中的数据,也可以根据筛选条件和排序字段进行自定义查询点击SQL生成可以生成相关的DDL sql在控制台就可以自己写各种sql操作我们的数据库和表。

2024-01-11 16:24:42 1121

原创 Dinky-数据开发源码详解

dinky源码将作业分类三类,common sql, flink sql 和flink jar然后调用不同方法进行提交。

2024-01-08 11:13:09 1252

原创 从Dinky聊聊Flink的二次开发

这几天研究了一下Dinky,确实是一款很不错的软件,功能很强大,也很实用,可以极大的方便我们flink sql的开发工作,同时他也支持其他一些主流数据库的SQL,像starrocks。Dinky号称基于Flink二次开发,没有侵入Flink,所以这一点就值得我们学习,为了了解Dinky我自己也搭建了一套Dinky环境,确实使用起来非常舒适 ,搭建过程也是比较容易,下面简单列一下搭建过程。

2024-01-03 17:27:55 1771

原创 Flink源码-Task执行

里面有大约六七十个handler,如果客户端使用fink run的方式来提交一个job,最终会由WebMonitorEndpoint的submitJobHandler来处理。负责接收用户提交的jobGraph,然后启动Jobmaster。Flink集群的资源管理器,关于slot的管理和申请工作都由他负责。

2023-12-18 17:28:14 1057

原创 Flink源码-Execution的生成

上一节我们分析到了在jobmaster启动后,会将JobGraph转换成ExecutionGraph,同时也会将checkpoint相关配置传给executionGraph,并且还创建了checkpointCoordinator。下面我们接着上节的地方继续往下分析。

2023-12-06 17:13:24 923

原创 Flink-Checkpoint源码详解

Flink chcekpoint作为flink中最重要的部分,是flink精准一次性的重要保证,可以这么说flink之所以这么成功和她的checkpoint机制是离不开的。之前大概学习了一下flink的checkpoint源码,但是还是有点晕乎乎的,甚至有点不理解我们作业中设置的checkpoint配置flink是如何读取到的,并且他是如何往下传播的。

2023-12-05 15:36:37 1251

原创 Spark源码 -- Stage的切分

该方法中主要做了一下几件事:1.创建resultStage,stage分为resultStage和shuffleMapStage2.提交stage。

2023-10-30 21:53:55 182 1

原创 Spark 作业提交流程源码分析

因为我们的环境是yarn-cluster环境,YarnClusterApplication继承了SparkApplication,所以上一步启动SparkApplication就会启动YarnClusterApplication,我们接下来看一下它的start方法,该方法中new了一个client对象后并调用它的run方法。这个方法中调用了submitApplication方法,返回一个appId,后面是对appId的相关判断和操作,所以下面我们可以看看submitApplication方法做了那些操作。

2023-10-20 14:06:27 812

原创 实时数据平台-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 930

原创 Flink源码--ExecutionGraph

在JobGraph向ExecutionGraph转化的过程中,主要的工作内容为根据Operator的并行度来拆分JobVertex,每一个JobGraph中的JobVertex对应的ExecutionGraph中的一个ExecutionJobVertex,而每一个ExecutionJobVertex根据自身并行度会拆分成多个ExecutionVertex。同时会有一个IntermediateResultPartition对象来接收ExecutionVertex的输出。

2023-08-30 22:13:03 203

原创 Flink源码-JobGraph的处理和JobMaster的创建

上节我们看到了RestClusterClient上传了jobgraph和作业相关的依赖,jar包等,可是flink集群是如何获取jobgraph如何继续下一步操作的呢,今天我们接着看。

2023-08-27 19:41:33 252

原创 Flink源码--JobGraph的上传

上节我们看到了JobGraph的生成,在集群环境中,jobGraph实在客户端生成的最终需要将生成的JobGraph和其他相关依赖一起上传到集群中,flink集群才可以才可以真正运行我们的代码。

2023-08-27 15:33:47 94

原创 从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 234

原创 Flink源码-StreamGraph的生成

上个帖子我们分析到了我们代码中算子最终会通过transformation的add方法将自身的血缘依赖添加到一个transformations这个list中,接下来我们看一下transforamtions是如何把血缘依赖放进streamgraph中.

2023-08-19 18:23:40 206

原创 从WordCount学习Flink源码-1

而我们学习Flink都是从WordCount开始的,WordCount对于现在的我们来说可能来说非常简单,但对初学者来说当时可能是我们噩梦的开始,特别是Flink的API名字相对来说都比较长,对于初学者的我们来说很容易把我们给烦死,于是我发明了这款防烦恼辅助器,设计非常的银杏,感到烦恼的小伙伴们可以对自己头上来一下就再也不会感到烦恼了(哈哈.....最近抖音刷多了,开个小玩笑)。转换算子的种类非常丰富,像我们这个案例中我们就用到了map,sum算子。没想到addSink算子更简单,直接一步到位..

2023-08-19 14:50:11 202

转载 一文搞懂 Flink 网络流控与反压机制

Operator间的数据传递 本地线程数据传递 远程线程数据传递 同一线程的Operator数据传递 Buffer读写 Buffer读取 Buffer写入 内存管理 MemorySegment和Buffer MemorySegment和Buffer的读写 当我们编写一个Flink任务时,抽象来说,是在描绘一个有向图。图中的边相当于由一系列数据记录组成的数据流,图中的顶点相当于我们对数据流的处理。 接下来的内容将在自顶向下地介绍有向图中的数据流是怎么在顶点间传递的。..

2023-05-28 20:28:17 415

原创 Flink Checkpoint源码解析-1

checkpoint的执行过程分为三个阶段:启动,执行以及确认完成,其中checkpoint的启动过程由JobManager管理节点中的checkpointCoordinator组件控制。该组件会周期性的向source节点发送执行checkpoint的请求。执行频率取决于配置的checkpointInterval参数。下面我们一起来看一下checkpoint的执行过程。

2023-04-14 15:25:20 463 1

原创 Flink Aligned Checkpoint和Unaligned Checkpoint原理详解

1.Flink分布式快照流程首先我们来看一下一个简单的Checkpoint的大致流程: 暂停处理新流入数据,将新数据缓存起来。 将算子子任务的本地状态数据拷贝到一个远程的持久化存储上。 继续处理新流入的数据,包括刚才缓存起来的数据。 Flink是在Chandy–Lamport算法[1]的基础上实现的一种分布式快照算法。在介绍Flink的快照详细流程前,我们先要了解一下检查点分界线(Checkpoint Barrier)的概念。如下图所示,Checkpoint Barrier

2022-04-18 22:35:47 2077

原创 用户画像-1: 大批量数据导入HBase

用户画像

2022-01-27 22:02:16 2972 1

原创 Spring AOP 从入门到放弃

Spring AOP主要内容代理模式代理模式在 Java 开发中是一种比较常见的设计模式。设计目的旨在为服务类与客户类之间插入其他功能,插入的功能对于调用者是透明的,起到伪装控制的作用。如租房的例子:房客、中介、房东。对应于代理模式中即:客户类、代理类 、委托类(被代理类)。为某一个对象(委托类)提供一个代理(代理类),用来控制对这个对象的访问。委托类和代理类有一个共同的父类或父接口。代理类会对请求做预处理、过滤,将请求分配给指定对象。生活中常见的代理情况:租房中介、..

2021-06-25 21:02:06 98

原创 Spring IOC

这里写自定义目录标题Spring IOC主要内容Spring 框架Spring 框架概念Spring 源码架构Spring 框架环境搭建环境要求新建 Maven 项目调整项目环境添加 Spring 框架的依赖坐标编写 Bean 对象添加Spring 配置文件加载配置文件,获取实例化对象Spring IOC 容器 Bean 对象实例化模拟定义 Bean 属性对象添加 dom4j 坐标依赖准备自定义配置文件定义 Bean 工厂接口定义 Bean 接口的实现类测试自定义 IOC 容器Spring IOC 配置文件

2021-06-24 08:23:52 164

14-Spring AOP.md

Aop文档

2021-06-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除