Flink CDC Connectors 独立部署模式详解
flink-cdc 项目地址: https://gitcode.com/gh_mirrors/fl/flink-cdc
前言
Flink CDC Connectors 是 Apache Flink 生态系统中的重要组件,它提供了变更数据捕获(CDC)功能,能够高效地捕获数据库变更并将其作为数据流处理。本文将详细介绍如何在独立(Standalone)模式下部署和运行 Flink CDC Connectors。
环境准备
系统要求
Flink 可以运行在所有类 UNIX 环境中,包括:
- Linux 系统
- Mac OS X
- Windows 下的 Cygwin 环境
下载与安装
- 首先需要下载 Flink 的二进制发行版,建议选择最新稳定版本
- 解压下载的压缩包:
tar -xzf flink-*.tgz
- 设置环境变量:
export FLINK_HOME=/path/to/flink-*
启动本地集群
启动集群
进入 Flink 安装目录,执行启动脚本:
cd $FLINK_HOME
./bin/start-cluster.sh
启动后可以通过以下命令检查进程状态:
ps aux | grep flink
访问 Web UI
集群启动后,可以通过浏览器访问 Flink 的 Web 控制台:
http://localhost:8081
停止集群
要停止集群,执行:
./bin/stop-cluster.sh
Flink CDC 配置
下载与解压
- 下载 Flink CDC 的 tar 包
- 解压文件:
tar -xzf flink-cdc-*.tar.gz
解压后的目录结构包含:
bin
: 可执行脚本目录lib
: 依赖库目录log
: 日志目录conf
: 配置文件目录
添加连接器
根据需求下载相应的连接器 jar 包,并放入 lib
目录中。注意只有稳定版本的连接器可以直接下载,快照(SNAPSHOT)版本需要自行编译。
提交 Flink CDC 作业
配置文件示例
下面是一个完整的 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: Sync MySQL Database to Doris
parallelism: 2
配置说明
-
source 部分:配置源数据库(Mysql)连接信息
tables
: 使用正则表达式匹配需要同步的表server-id
: MySQL 复制需要唯一的 server idserver-time-zone
: 设置时区
-
sink 部分:配置目标数据库(Doris)连接信息
fenodes
: Doris FE 节点地址
-
pipeline 部分:配置作业基本信息
name
: 作业名称parallelism
: 并行度
提交作业
使用以下命令提交作业:
cd /path/to/flink-cdc-*
./bin/flink-cdc.sh mysql-to-doris.yaml
成功提交后,会返回类似以下信息:
Pipeline has been submitted to cluster.
Job ID: ae30f4580f1918bebf16752d4963dc54
Job Description: Sync MySQL Database to Doris
监控与管理
提交作业后,可以通过 Flink Web UI 查看作业运行状态:
- 在作业列表中查找名为 "Sync MySQL Database to Doris" 的作业
- 可以查看作业的详细运行指标、日志等信息
- 必要时可以通过 UI 停止或重启作业
常见问题与建议
- 连接器版本兼容性:确保 Flink 版本与 CDC 连接器版本兼容
- 资源分配:根据数据量大小合理设置并行度
- 网络配置:确保源数据库和目标数据库网络可达
- 权限设置:确保数据库用户有足够的权限执行 CDC 操作
- 日志查看:遇到问题时首先检查日志文件
总结
通过本文的介绍,您应该已经掌握了在独立模式下部署和运行 Flink CDC Connectors 的基本流程。独立模式适合开发测试和小规模生产环境,具有部署简单、资源占用少的特点。对于大规模生产环境,建议考虑使用 Flink 的其他部署模式如 YARN 或 Kubernetes。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考