Apache Flink CDC 独立部署模式详解
概述
Apache Flink CDC 是基于 Flink 构建的变更数据捕获(Change Data Capture)框架,它能够高效捕获数据库变更事件并将其转化为实时数据流。本文将详细介绍如何在独立(Standalone)模式下部署和运行 Flink CDC,适合开发测试环境或小规模生产场景。
环境准备
系统要求
Flink CDC 可以运行在以下环境:
- Linux 系统(推荐)
- Mac OS X
- Windows(通过 Cygwin 或 WSL)
软件依赖
- Java 环境:需要安装 JDK 8 或 JDK 11
- Flink 安装包:下载最新稳定版 Flink 二进制发行版
- Flink CDC 安装包:下载对应版本的 Flink CDC 发行版
Flink 独立集群部署
安装步骤
- 解压 Flink 安装包:
tar -xzf flink-*.tgz
- 设置环境变量(建议添加到 ~/.bashrc 或 ~/.zshrc):
export FLINK_HOME=/path/to/flink-*
集群启停管理
启动本地集群:
cd $FLINK_HOME
./bin/start-cluster.sh
验证集群状态:
ps aux | grep flink
停止集群:
./bin/stop-cluster.sh
访问 Web UI
启动成功后,可以通过浏览器访问 Flink Web UI:
http://localhost:8081
Flink CDC 配置
安装 Flink CDC
- 解压 Flink CDC 安装包:
tar -xzf flink-cdc-*.tar.gz
解压后的目录结构包含:
bin/
:执行脚本目录lib/
:依赖库目录log/
:日志目录conf/
:配置文件目录
- 下载所需的连接器 JAR 包并放入
lib/
目录
示例任务部署
配置文件示例
以下是一个 MySQL 到 Doris 的全库同步配置示例 mysql-to-doris.yaml
:
source:
type: mysql
hostname: localhost
port: 3306
username: root
password: 123456
tables: app_db.\\.*
server-id: 5400-5404
server-time-zone: UTC
sink:
type: doris
fenodes: 127.0.0.1:8030
username: root
password: ""
pipeline:
name: MySQL 全库同步到 Doris
parallelism: 2
配置说明
-
source 部分:配置源数据库(Mysql)连接信息
tables
支持正则表达式匹配多表server-id
需确保在 MySQL 集群中唯一server-time-zone
建议与数据库时区一致
-
sink 部分:配置目标数据库(Doris)连接信息
fenodes
指定 Doris FE 节点地址
-
pipeline 部分:配置任务基本信息
parallelism
根据数据量和机器配置调整
提交任务
使用以下命令提交任务:
./bin/flink-cdc.sh mysql-to-doris.yaml
成功提交后,终端会显示类似输出:
Pipeline has been submitted to cluster.
Job ID: ae30f4580f1918bebf16752d4963dc54
Job Description: MySQL 全库同步到 Doris
任务监控与管理
-
通过 Web UI 监控:
- 在 Flink Web UI 中可以查看任务运行状态
- 监控数据同步延迟、吞吐量等指标
-
日志查看:
- 任务日志位于
log/
目录下 - 可通过日志排查同步问题
- 任务日志位于
-
任务停止:
- 通过 Web UI 或命令行停止任务
- 紧急情况下可直接 kill 相关进程
常见问题排查
-
连接失败:
- 检查数据库网络连通性
- 验证用户名密码是否正确
- 确认数据库权限设置
-
同步延迟:
- 增加任务并行度
- 调整 Flink 内存配置
- 检查网络带宽
-
数据不一致:
- 检查源表和目标表结构是否匹配
- 确认主键设置是否正确
- 验证数据类型映射关系
最佳实践建议
-
资源配置:
- 根据数据量合理设置 TaskManager 内存
- 适当增加并行度提升吞吐量
-
监控告警:
- 设置关键指标监控
- 配置延迟告警阈值
-
数据一致性:
- 定期校验源库和目标库数据
- 记录检查点(Checkpoint)信息
-
高可用:
- 生产环境建议采用高可用部署模式
- 配置定期备份
通过本文介绍,您应该已经掌握了 Flink CDC 在独立模式下的部署和使用方法。独立模式适合开发和测试环境,生产环境建议考虑更稳定的部署方式。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考