Seatunnel Docker image镜像制作

Seatunnel Docker image镜像制作

    #下载 seatunnel

    • export version="2.3.3"
    • wget "Index of /dist/seatunnel{version}/apache-seatunnel-{version}-bin.tar.gz"
    • tar -xzvf "apache-seatunnel-${version}-bin.tar.gz"

    #解压

    • tar -xzvf apache-seatunnel-${SEATUNNEL_VERSION}-bin.tar.gz

    #配置connector, config/plugin_config 根据需要配置,Demo只需要以下两个即可

    • --seatunnel-connectors--
    • connector-fake
    • connector-console
    • --end--

    #执行插件安装

    • sh bin/install-plugin.sh 2.3.3
    • #执行后,会自动下载maven包到 ~/.m2/wrapper/dists/apache-maven-3.8.4-bin/目录中
    • #连接到 Central Repository:,下载传统比较慢
    • #需要一下镜像,全用本地的setting.xml
      • #:~/.m2/wrapper/dists/apache-maven-3.8.4-bin/52ccbt68d252mdldqsfsn03jlf/apache-maven-3.8.4/conf#
    • #再重新执行 sh bin/install-plugin.sh 2.3.3 使用国内镜像,例如:阿里云,此时就很快了
    • #bin/install-plugin.sh 会将对就的jar包复制到 connectors/seatunnel和lib目录下

    #修改apache-seatunnel-${version}-bin目录下的配置文件

    • #编写plugin_config文件
      • vi config/plugin_config
        • --seatunnel-connectors--
        • connector-fake
        • connector-console
        • --end--
    • #编写批处理配置文件
      • vi config/v2.batch.config.template

    env {
    execution.parallelism = 1
    job.mode = "BATCH"
    }

    source {
    FakeSource {
    result_table_name = "fake"
    row.num = 16
    schema = {
    fields {
    name = "string"
    age = "int"
    }
    }
    }
    }

    transform {
    FieldMapper {
    source_table_name = "fake"
    result_table_name = "fake1"
    field_mapper = {
    age = age
    name = new_name
    }
    }
    }

    sink {
    Console {
    source_table_name = "fake1"
    }
    }

    #下载openjdk:8镜像

    • docker pull openjdk:8

    #创建Dockerfile

    • vi dockerfile-seatunnel-2.3.3
    • #内容 当前目录下的seatunnel包、lib目录、connectors目录复制到镜像中
      • FROM openjdk:8
      • ENV SEATUNNEL_VERSION="2.3.3"
      • COPY ./apache-seatunnel-{SEATUNNEL_VERSION}-bin.tar.gz /opt/apache-seatunnel-{SEATUNNEL_VERSION}-bin.tar.gz
      • WORKDIR /opt
      • RUN tar -xzvf apache-seatunnel-${SEATUNNEL_VERSION}-bin.tar.gz
      • RUN mv apache-seatunnel-${SEATUNNEL_VERSION} seatunnel
      • RUN rm -f /opt/apache-seatunnel-${SEATUNNEL_VERSION}-bin.tar.gz
      • WORKDIR /opt/seatunnel
      • ENTRYPOINT "sh","-c"," bin/seatunnel.sh --config $config -e local"

    #build镜像

    • docker build -t seatunnel:2.3.3 -f dockerfile-seatunnel-2.3.3 .

    #使用镜像后台运行

    • docker run -d -p 9000:9000 --restart=unless-stopped --name seatunnel -d --hostname seatunnel-node1 --network my-net -e config="/data/seatunnel.batch.conf" -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/config/v2.batch.config.template:/data/seatunnel.batch.conf -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/config/plugin_config:/opt/seatunnel/plugin_config -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/lib:/opt/seatunnel/lib -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/plugins:/opt/seatunnel/plugins -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/connectors/seatunnel:/opt/seatunnel/connectors/seatunnel -v /etc/localtime:/etc/localtime seatunnel:2.3.3

    #使用镜像临时测试

    • docker run --name seatunnel --hostname seatunnel-node1 --network my-net -e config="/data/seatunnel.batch.conf" -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/config/v2.batch.config.template:/data/seatunnel.batch.conf -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/config/plugin_config:/opt/seatunnel/plugin_config -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/lib:/opt/seatunnel/lib -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/plugins:/opt/seatunnel/plugins -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/connectors/seatunnel:/opt/seatunnel/connectors/seatunnel -v /etc/localtime:/etc/localtime seatunnel:2.3.3

    #使用JDBC模式,同步两个库的数据

    • 修改plugin_config
        • --seatunnel-connectors--
        • connector-fake
        • connector-console
        • connector-jdbc
        • --end--
      • 安装插件,安装过程中会自动把相应的jar包复制到对应的目录中
        • sh bin/install-plugin.sh 2.3.3
      • 修改v2.streaming.conf.template配置

      Defining the runtime environment

      env {

      You can set flink configuration here

      execution.parallelism = 1
      job.mode = "BATCH"
      }
      source{
      Jdbc {
      url = "jdbc:mysql://mysql:3306/test"
      driver = "com.mysql.cj.jdbc.Driver"
      connection_check_timeout_sec = 100
      user = "root"
      password = "123456"
      query = "select * from help_keyword_1 limit 2"
      }
      }

      transform {
      # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
      # please go to https://seatunnel.apache.org/docs/transform-v2/sql
      }

      sink {

      Console {}

      jdbc {
      url = "jdbc:mysql://mysql:3306/test2"
      driver = "com.mysql.cj.jdbc.Driver"
      user = "root"
      password = "123456"
      query = "insert into help_keyword_1(help_keyword_1_id,name) values(?,?)"
      }
      }

#配置MYSQL-CDC通过binlog实时数据同步

    • 临时启动容器
      • docker run --name seatunnel --hostname seatunnel-node1 --network my-net -e config="/data/seatunnel.streaming.conf" -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/config/v2.streaming.conf.template:/data/seatunnel.streaming.conf -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/config/plugin_config:/opt/seatunnel/plugin_config -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/lib:/opt/seatunnel/lib -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/plugins:/opt/seatunnel/plugins -v /mnt/sda1/seatunnel/apache-seatunnel-2.3.3/connectors/seatunnel:/opt/seatunnel/connectors/seatunnel -v /etc/localtime:/etc/localtime seatunnel:2.3.3
相关推荐
云烟成雨TD13 分钟前
Kubernetes 系列【4】基础概念
云原生·容器·kubernetes
zhoupenghui1681 小时前
【AI大模型应用开发】【项目实战】13.RAG智慧问答项目-(一)项目介绍&项目架构&项目环境配置
人工智能·docker·ai·milvus·rag·attu·rag智慧问答项目
iangyu2 小时前
linux配置时间同步
linux·运维·服务器
云烟成雨TD2 小时前
Kubernetes 系列【3】使用 kubeadm 创建 K8s 集群
云原生·容器·kubernetes
iPad协议个微协议3 小时前
企业微信文件上传下载在自动化系统中的处理方式
java·运维·人工智能·机器人·自动化·企业微信
Tian_Hang3 小时前
eclipse ditto 学习笔记
运维·服务器·开发语言·javascript·3d
江畔柳前堤4 小时前
第13章:docker生产环境部署实战
运维·git·docker·容器·代码复审
爱喝水的鱼丶4 小时前
SAP-ABAP:接口 vs 抽象类:ABAP OOP两类扩展方式的差异与选型原则
运维·性能优化·sap·abap·erp·经验交流
iCxhust4 小时前
linux目录是否保存在硬盘 启动后读入解析的
linux·运维·服务器
敖行客 Allthinker4 小时前
企业级多台服务器组装 K3s 高性能集群实战指南
运维·服务器·团队开发