StreamPark-CDC
StreamPark 与 Flink CDC 下载安装及实时数据同步详细指南
一、StreamPark 下载与安装
1. 环境准备
- 操作系统:Linux(推荐 CentOS 7+/Ubuntu 20.04+)、macOS 或 Windows(需 Docker)。
- Java 环境:JDK 11 或 17(如
openjdk-17-jdk),验证安装:java -version - Docker 与 Docker Compose(推荐 Docker 部署):
- Docker 版本 ≥ 1.13.1,Docker Compose ≥ 1.28.0。
- 安装 Docker Compose(二进制方式):
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/2.16.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
2. Docker 部署 StreamPark
-
下载配置文件:
创建docker-compose.yaml和.env文件,内容如下:
docker-compose.yamlversion: '3.8' services: streampark-console: image: apache/streampark:latest command: ${RUN_COMMAND} ports: - "10000:10000" env_file: .env volumes: - flink:/streampark/flink/${FLINK} - /var/run/docker.sock:/var/run/docker.sock - ~/.kube:/root/.kube:ro privileged: true restart: unless-stopped flink-jobmanager: image: ${FLINK_IMAGE} ports: - "8081:8081" command: jobmanager volumes: - flink:/opt/flink env_file: .env restart: unless-stopped privileged: true flink-taskmanager: image: ${FLINK_IMAGE} depends_on: - flink-jobmanager command: taskmanager deploy: replicas: 1 env_file: .env restart: unless-stopped privileged: true networks: streampark: driver: bridge volumes: flink:.envTZ=Asia/Shanghai SPRING_PROFILES_ACTIVE=mysql SPRING_DATASOURCE_URL=jdbc:mysql://127.0.0.1:3306/streampark?useSSL=false&serverTimezone=UTC SPRING_DATASOURCE_USERNAME=root SPRING_DATASOURCE_PASSWORD=your_password FLINK=flink1.18.1 FLINK_IMAGE=flink:1.18.1-scala_2.12 RUN_COMMAND='/bin/sh -c "wget -P lib https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.31/mysql-connector-j-8.0.31.jar && bash bin/start_docker"' -
初始化 MySQL 数据库:
下载 StreamPark 的 SQL 脚本并执行:wget https://github.com/apache/incubator-streampark/archive/refs/tags/v1.0.0.tar.gz tar -xzvf v1.0.0.tar.gz cd incubator-streampark-1.0.0/script/schema mysql -u root -p < mysql-schema.sql mysql -u root -p < mysql-data.sql -
启动 StreamPark:
docker-compose up -d访问 Web UI:
http://localhost:10000,默认账号为admin/streampark。
二、Flink CDC 下载与配置
1. 下载 Flink CDC 连接器
- 根据 Flink 版本选择对应的 CDC 连接器(如 Flink 1.18.x 对应
flink-sql-connector-mysql-cdc-3.6.0.jar)。 - 下载地址:
- Flink CDC 官方仓库
- 将 JAR 包放入 StreamPark 的
lib目录(如/usr/local/streampark/lib)。
2. 配置 MySQL 源表
- 确保 MySQL 已开启 Binlog 日志(用于 CDC 捕获变更):
重启 MySQL 服务后验证:-- 修改 MySQL 配置文件 my.cnf(或 my.ini) [mysqld] server-id=1 log_bin=mysql-bin binlog_format=ROW binlog_row_image=FULLSHOW VARIABLES LIKE 'log_bin';
三、通过 Flink CDC 实现 MySQL 到 Doris 的实时同步
1. 创建 Flink SQL 作业
- SQL 脚本示例:
-- 源表(MySQL CDC) CREATE TABLE source_mysql ( id INT, name STRING, PRIMARY KEY (id) NOT ENFORCED ) WITH ( 'connector' = 'mysql-cdc', 'hostname' = 'localhost', 'port' = '3306', 'username' = 'root', 'password' = 'your_password', 'database-name' = 'db_test', 'table-name' = 't_students' ); -- 目标表(Doris) CREATE TABLE sink_doris ( id INT, name STRING ) WITH ( 'connector' = 'doris', 'fenodes' = '127.0.0.1:8030', 'table.identifier' = 'db_test.t_students', 'username' = 'root', 'password' = '' ); -- 数据同步 INSERT INTO sink_doris SELECT * FROM source_mysql;
2. 在 StreamPark 中部署作业
- 上传 JAR 包:将 Flink CDC 和 Doris 连接器 JAR 包上传至 StreamPark 的
lib目录。 - 创建作业:
- 登录 StreamPark 控制台,进入 Flink SQL 模块。
- 粘贴上述 SQL 脚本,配置作业参数(如并行度、Checkpoint 间隔)。
- 选择部署模式(如
Kubernetes Application或YARN Per-Job)。 - 点击 上线 按钮启动作业。
3. 监控与运维
- 作业状态:在 StreamPark 控制台查看作业运行状态、日志和指标。
- 故障恢复:从 Savepoint 恢复作业,确保数据一致性。
- 性能优化:
- 调整并行度(如
parallelism=4)。 - 启用 Checkpoint:
'execution.checkpointing.interval' = '30s'。
- 调整并行度(如
四、关键注意事项
-
依赖兼容性
- 确保 Flink CDC 连接器版本与 Flink 版本匹配(如 Flink 1.18.x 对应
flink-cdc-3.6.0)。 - 若目标为 Hive/Hologres,需额外配置对应的 JDBC 驱动。
- 确保 Flink CDC 连接器版本与 Flink 版本匹配(如 Flink 1.18.x 对应
-
数据一致性
- 在 YAML 或 SQL 中配置
schema.change.behavior=LENIENT,允许自动适配表结构变更。 - 确保源表和目标表主键一致,避免数据重复或丢失。
- 在 YAML 或 SQL 中配置
-
生产环境建议
- 高可用部署:使用 Kubernetes 或 YARN 集群模式,避免单点故障。
- 监控告警:集成 Prometheus + Grafana,监控同步延迟、吞吐量等指标。
本文来自博客园,作者:蓝迷梦,转载请注明原文链接:https://www.cnblogs.com/hewei-blogs/articles/19075071

浙公网安备 33010602011771号