Flink任务如何实时获取控制台日志

开源数据开发平台:GitHub - 642933588/jiron-cloud: 该项目整合了多款优秀的开源产品,构建了一个功能全面的数据开发平台。平台提供了强大的数据集成、数据开发、数据查询、数据服务、数据质量管理、工作流调度和元数据管理功能。#dinky #dolphinscheduler #datavines #flinkcdc #openmetadata #flink #数据开发 #数据平台 # 数据开发平台 #大数据

利用jiron数据开发平台提交flink任务到flink 集群,实现IDE控制台实时展示日志信息。

实现效果:

定义注解:

(开始和结束流程的切面)

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Inher
### Flink CDC 的概念 Flink CDC (Change Data Capture) 是一种用于实时捕获数据库变更的技术,能够将这些变更加入到流处理框架中进行进一步的处理和分析[^1]。具体来说,Flink CDC 可以监听 MySQL 或其他支持的日志记录系统中的变化事件,并将其转换成可以被 Apache Flink 处理的数据流。 这种机制允许开发者构建低延迟的应用程序来响应最新的业务活动,而无需等待批量加载过程完成。它特别适用于需要及时反映最新状态更新场景下的应用开发工作。 ### 使用教程 #### 准备环境 为了使 Flink 能够读取来自 MySQL 数据库的变化日志,在配置 MySQL 实例时需确保已启用 binlog 功能并设置相应的参数: ```bash vim /etc/my.cnf ---------------------------------- [mysqld] # 开启 binlog 并指定二进制日志文件前缀 log-bin=mysql-bin # 集群备份恢复需要每台机器有唯一的 ID server-id=1 # 执行哪些库开启 binlog【库名DATABASE_NAME】 binlog-do-db=flink_cdc ---------------------------------- systemctl restart mysqld ``` 上述命令会修改 MySQL 的配置文件 `/etc/my.cnf` 来启动 binlog 日志功能,并针对特定数据库 `flink_cdc` 启用此特性[^4]。 #### 创建项目依赖 接下来创建一个新的 Maven 工程并将必要的依赖项加入 pom.xml 文件内: ```xml <dependencies> <!-- Flink dependencies --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.12</artifactId> <version>${flink.version}</version> </dependency> <!-- Flink CDC Connectors dependency --> <dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-mysql-cdc</artifactId> <version>${cdc.connector.version}</version> </dependency> ... </dependencies> ``` 这里引入了两个主要组件:一个是核心的 Flink 流处理 API;另一个则是专门用来连接 MySQL 进行 CDC 操作的插件。 #### 编写代码实现逻辑 下面是一段简单的 Java 代码片段展示如何利用 Flink CDC Connector 对 MySQL 表执行变更捕捉操作: ```java import com.alibaba.ververica.cdc.connectors.mysql.MySqlSource; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; public class MysqlCdcExample { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); MySqlSource<String> mySqlSource = MySqlSource.<String>builder() .hostname("localhost") .port(3306) .databaseList("flink_cdc") // 监听哪个数据库 .tableList("flink_cdc.inventory.products") // 监听哪张表 .username("root") .password("your_password_here") .deserializer(new JsonDeserializationSchema()) // 自定义反序列化器 .build(); env.fromSource(mySqlSource, WatermarkStrategy.noWatermarks(), "MySQL Source") .print(); // 输出结果至控制台 env.execute("FlinkCDC Example"); } } ``` 这段代码展示了怎样建立一个基本的任务流程,其中包含了从 MySQL 中获取增量数据并通过打印的方式输出给用户查看的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值