StreamPark-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.yaml

    version: '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:
    

    .env

    TZ=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

1. 下载 Flink CDC 连接器

  • 根据 Flink 版本选择对应的 CDC 连接器(如 Flink 1.18.x 对应 flink-sql-connector-mysql-cdc-3.6.0.jar)。
  • 下载地址:

2. 配置 MySQL 源表

  • 确保 MySQL 已开启 Binlog 日志(用于 CDC 捕获变更):
    -- 修改 MySQL 配置文件 my.cnf(或 my.ini)
    [mysqld]
    server-id=1
    log_bin=mysql-bin
    binlog_format=ROW
    binlog_row_image=FULL
    
    重启 MySQL 服务后验证:
    SHOW VARIABLES LIKE 'log_bin';
    

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 目录。
  • 创建作业
    1. 登录 StreamPark 控制台,进入 Flink SQL 模块。
    2. 粘贴上述 SQL 脚本,配置作业参数(如并行度、Checkpoint 间隔)。
    3. 选择部署模式(如 Kubernetes ApplicationYARN Per-Job)。
    4. 点击 上线 按钮启动作业。

3. 监控与运维

  • 作业状态:在 StreamPark 控制台查看作业运行状态、日志和指标。
  • 故障恢复:从 Savepoint 恢复作业,确保数据一致性。
  • 性能优化
    • 调整并行度(如 parallelism=4)。
    • 启用 Checkpoint:'execution.checkpointing.interval' = '30s'

四、关键注意事项

  1. 依赖兼容性

    • 确保 Flink CDC 连接器版本与 Flink 版本匹配(如 Flink 1.18.x 对应 flink-cdc-3.6.0)。
    • 若目标为 Hive/Hologres,需额外配置对应的 JDBC 驱动。
  2. 数据一致性

    • 在 YAML 或 SQL 中配置 schema.change.behavior=LENIENT,允许自动适配表结构变更。
    • 确保源表和目标表主键一致,避免数据重复或丢失。
  3. 生产环境建议

    • 高可用部署:使用 Kubernetes 或 YARN 集群模式,避免单点故障。
    • 监控告警:集成 Prometheus + Grafana,监控同步延迟、吞吐量等指标。
posted @ 2025-09-05 11:15  蓝迷梦  阅读(325)  评论(0)    收藏  举报