Flink
文章平均质量分 95
专注Flink原理、实践、源码。
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
ErbaoLiu
学习 分享
展开
-
Flink CDC Standalone模式部署及Flink CDC Job提交
独立模式(Standalone mode)是Flink最简单的部署模式。本文将介绍如何下载、安装和运行Flink CDC。Flink CDC是基于Flink开发的一个流式数据集成工具。所以按照Flink CDC需要事先按照Flink。具体安装请参见。本文选用Flink CDC 3.1.0和Flink 1.17.2。原创 2024-08-23 09:57:02 · 347 阅读 · 0 评论 -
Apache Doris安装部署
Apache Doris官网主页如下:Apache Doris介绍:Apache Doris 简介 - Apache Doris。原创 2024-08-22 10:21:43 · 334 阅读 · 0 评论 -
FlinkCEP - Flink的复杂事件处理详解
FlinkCEP是在Flink之上实现的复杂事件处理(CEP)库。它允许在无尽的事件流中检测事件模式,使您有机会掌握数据中重要的内容。FlinkCEP类似字符串中,使用正则表达式检测感兴趣的字符串。如果您想直接开始,可以设置Flink程序并将FlinkCEP依赖项添加到项目的pom.xml中。2.12为scala版本,1.71.1为flink版本。FlinkCEP不是二进制发行版的一部分。原创 2024-08-21 12:32:35 · 229 阅读 · 0 评论 -
Table API & SQL之时区Time Zone详解
事件时间属性是使用CREATE table DDL中的WATERMARK语句定义的。watermark语句在已有的事件时间字段上定义一个watermark生成表达式,将该事件时间字段标记为事件时间属性。Flink支持在TIMESTAMP列和TIMESTAMP_LTZ列上定义事件时间属性。如果源中的时间戳数据表示为年-月-日-小时-分-秒,通常是一个不带时区信息的字符串值,例如) WITH (...原创 2024-08-19 15:48:52 · 226 阅读 · 0 评论 -
Table API之用户自定义函数User-defined Functions详解
目前,Flink区分了以下几种函数:(1)标量函数()将标量值映射到新的标量值。(2)表函数()将标量值映射到新行。(3)聚合函数()将多行的标量值映射到新的标量值。(4)表聚合函数()将多行的标量值映射到新行。(5)异步表函数()是表源执行查找的特殊函数。下面的示例展示了如何创建一个简单的标量函数,以及如何在Table API和SQL中调用该函数。对于SQL查询,函数必须始终以名称注册。对于Table API,可以注册函数或直接内联使用函数。原创 2024-08-18 16:34:54 · 55 阅读 · 0 评论 -
Table API & SQL系统(内置)函数System (Built-in) Function详解
Flink Table API & SQL允许用户使用函数进行数据转换。原创 2024-08-17 12:49:11 · 169 阅读 · 0 评论 -
Table API & SQL的概念和通用API
表API和SQL集成在一个联合API中。这个API的核心概念是一个表,它作为查询的输入和输出。本文展示了具有表API和SQL查询的程序的公共结构,如何注册表,如何查询表,以及如何发出表。原创 2024-08-15 13:23:01 · 134 阅读 · 0 评论 -
侧输出Side Output详解
默认情况下,当Watermark超过窗口末端时,延迟的元素将被删除。在Watermark通过窗口结束之后到达的元素,但在它通过窗口结束之前加上允许的延迟,仍然被添加到窗口中。当使用事件时间窗口时,可能会发生元素到达较晚的情况,即Flink用于跟踪事件时间进程的Watermark已经超过了元素所属窗口的结束时间。为了使这种情况可以工作,Flink保持窗口的状态,直到允许的延迟过期。这是一条延迟数据,因为此时Watermark=4000,Flink任务时间已经到达4000,该数据延迟了1000。原创 2024-08-14 11:48:48 · 99 阅读 · 0 评论 -
DataStream API的Joining操作
窗口连接(window join)将两个流的元素连接在一起,这两个流共享一个公共键,并且位于同一窗口。这些窗口可以通过使用窗口分配器来定义,并对来自两个流的元素进行计算。然后将来自两边的元素传递给用户定义的JoinFunction或FlatJoinFunction,用户可以在其中发出满足连接条件的结果。原创 2024-08-13 22:31:35 · 77 阅读 · 0 评论 -
DataStream API的Windows使用及源码分析
简而言之,当应该属于该窗口的第一个元素到达时,就会创建一个窗口,当时间(事件或处理时间)超过其结束时间戳和用户指定的允许延迟时,该窗口将被完全删除。举个例子:比如一个基于事件时间的窗口为[2000,3000),允许延迟2000ms,当事件时间为2500的事件到达时,在该事件之前没有事件时间在[2000,2500)范围的事件,则该事件是属于窗口[2000,3000)的第一个事件,此时就会创建窗口[2000,3000),当事件时间大于5000的事件到达该窗口时,该窗口将触发计算,并被删除。原创 2024-08-13 13:22:15 · 55 阅读 · 0 评论 -
Watermark水位线实践与源码分析
所以自定义Watermark,也是通过实现WatermarkGenerator接口来生成Watermark,此时可以根据用户的需求定制生成逻辑。自定义Watermark,根据是在onEvent方法中实现生成Watermark逻辑,还是onPeriodicEmit方法中实现生成Watermark逻辑,分为间断性Watermark和周期性Watermark。原创 2024-08-10 15:53:51 · 72 阅读 · 0 评论 -
Flink的DataStream状态管理
(1)键控状态(keyed state)(2)算子状态(Operator State)(3)广播状态(Broadcast State)说键控状态之前,不得不提键控数据流。原创 2024-08-07 15:58:03 · 246 阅读 · 0 评论 -
Flink中上游DataStream到下游DataStream的内置分区策略及自定义分区策略
Public/***/partition方法中的key是用于进行分区的键,numPartitions是总分区数,返回值是分区索引或分区号。/***/@Override该分区器将键为偶数数据分到0分区,键为奇数的分到1分区。/***/// 初始化执行环境.// 为了打印方便,设置并行度为2,默认为8.// 从一个包含三个元素的集合数据源中读取流.// 为了打印可以看出数据的分区信息,使用map方法.@Override// 获取分区号.});原创 2024-08-03 21:47:07 · 194 阅读 · 0 评论 -
DataStream Connector的JDBC Sink
DataStream Connector中的JDBC Connector提供一个接收器,用于将数据写入JDBC数据库。请注意,流连接器目前不是二进制发行版的一部分。如果需要在集群中执行,需要将上面的依赖jar添加到Flink集群中。JDBC接收器提供了至少一次(at-least-once)语义。但是,通过编写upsert SQL语句或幂等SQL更新,可以有效地实现“只执行一次”(exactly-once)语义。原创 2024-08-02 16:45:29 · 145 阅读 · 0 评论 -
DataStream API使用Sink及自定义Sink
下面自定义实现MySQL Sink。案例将从Socket中读取数据,并写入到MySQL中。/***/@Override@Override//关闭连接和释放资源= null) {if (ps!@Override//组装数据,执行插入操作try {return con;原创 2024-08-02 11:53:40 · 192 阅读 · 0 评论 -
DataStream API使用Source及自定义Source
下面我们实现一个自定义的Socket源。实现步骤:(1)通过实现SourceFunction,自定义一个SourceFuncttion;(2)调用addSource(sourcefunction)来使用。原创 2024-08-01 20:50:28 · 64 阅读 · 0 评论 -
Flink DataStream API编程入门
DataStream API的名称来自于DataStream类,该类用于表示Flink程序中的数据集合。您可以将它们视为包含重复项的不可变数据集合。这些数据可以是有限的,也可以是无限的,但是用于处理它们的API是相同的。在使用方面,数据流与常规Java Collection类似,但在一些关键方面有很大不同。DataStream是不可变的,这意味着一旦创建了它们,就不能添加或删除元素。您不仅可以简单地检查其中的元素,还可以使用DataStream API算子(也称为转换)对它们进行处理。原创 2024-08-01 13:52:23 · 296 阅读 · 0 评论 -
用户自定义Table API Connector(Sources & Sinks)
在许多情况下,实现者不需要从头创建新的连接器,而是希望稍微修改现有的连接器或挂钩到现有的堆栈。在其他情况下,实现者希望创建专门的连接器。本节对这两种情况都有帮助。它解释了表连接器的一般体系结构,从API中的纯声明到将在集群上执行的运行时代码。箭头显示了在转换过程中对象如何从一个阶段转换到下一个阶段的其他对象。原创 2024-07-31 21:14:55 · 131 阅读 · 0 评论 -
Table & SQL connectors以及FileSystem、JDBC connector
Flink的Table API和SQL程序可以连接到其他外部系统,用于读取和写入批处理和流表( batch and streaming tables)。表源(Table Source)提供对存储在外部系统(如数据库、键值存储、消息队列或文件系统)中的数据的访问。表接收器(Table Sink)将表发送到外部存储系统。根据源和接收的类型,它们支持不同的格式,如CSV、Avro、Parquet或ORC。原创 2024-07-30 10:58:19 · 219 阅读 · 0 评论 -
Flink CDC基本概念以及MySQL同步到MySQL
本文基于Flink CDC v2.4.2版本和Flink 1.17.1版本。原创 2024-07-29 13:03:17 · 1108 阅读 · 1 评论 -
Flink History Server配置
执行如下命令,打开bigdata111服务器flink安装目录下的flink-conf.yaml配置文件。可以选择任意一条服务器作为History Server节点,这里选择bigdata112作为History Server节点。重启以后在History Server web ui页面会显示该Job(JobManager Server依然不显示)。在bigdata112上,执行如下命令启动historyserver。登录如下地址,访问history server的web ui页面。原创 2024-07-18 14:32:53 · 1143 阅读 · 0 评论 -
Flink HA
bigdata111和bigdata112作为master节点,也就是实现JobManager的高可用。bigdata112和bigdata113作为worker节点,作为TaskManager节点。Flink HA集群使用ZooKeeper和HDFS实现。所以需要ZooKeeper集群和HDFS集群。执行zkCli.sh命令连接ZooKeeper集群,最终查找到当前Flink中active JobManager是bigdata111。active JobManager节点已经切换到bigdata112。原创 2024-07-18 16:26:41 · 951 阅读 · 0 评论 -
Flink时间和窗口
如图所示,由事件生成器(Event Producer)生成事件,生成的事件数据被收集起来,首先进入分布式消息队列(Message Queue),然后被 Flink 系统中的 Source 算子(Data Source)读取消费,进而向下游的窗口算子(Window Operator)传递,最终由窗口算子进行计算处理。 有两个非常重要的时间点:(1)一个是数据产生的时刻,我们把它叫作“事件时间”(Event Time);原创 2024-07-24 15:52:11 · 1259 阅读 · 0 评论 -
Flink多种模式任务提交
目录界面方式命令方式测试代码如下:package wordcountimport org.apache.flink.api.java.utils.ParameterToolimport org.apache.flink.streaming.api.scala._/** * Created by leboop on 2020/5/19. */object StreamWordCount { def main(args: Array[String]): Unit = {原创 2020-05-20 11:21:56 · 1679 阅读 · 3 评论 -
IDEA搭建Flink开发环境及WordCount
1、创建一个Maven项目并配置Java SDK和Scala SDK,如图:这里选择的是jdk1.8和scala2.12版本。2、添加pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...原创 2020-05-19 23:13:54 · 2741 阅读 · 1 评论 -
Linux安装Flink
1、下载flink-1.9.3-bin-scala_2.11.tgz2、解压tar -zxvf flink-1.9.3-bin-scala_2.11.tgz -C /opt/解压到/opt/目录下3、配置环境变量打开配置文件:vi /etc/profile配置内容如下:# Flinkexport FLINK_HOME=/opt/flink-1.9.3export PATH=$FLINK_HOME/bin:$PATH保存配置:source/etc...原创 2020-05-19 15:32:52 · 3548 阅读 · 1 评论 -
DolphinScheduler2.0.6海豚调度本地源码环境搭建
install的时候,默认会执行test,但是本地install不需要执行test,需要关闭test功能。比如报错如下:ClassNotFoundException: org.jacoco.agent.rt.internal_035b120.Offline。需要提前安装好数据库,这里选用MySQL。修改根项目中pom.xml,将mysql-connector-java依赖的scope修改为compile。可能是Zookeeper未启动,启动Zookeeper后,再启动对应的服务。原创 2023-03-02 13:49:30 · 1560 阅读 · 1 评论 -
DolphinScheduler海豚调度部署
DolphinScheduler以2.0.6版本为例。原创 2023-02-28 11:43:14 · 1325 阅读 · 0 评论