暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

初探 Apache SeaTunnel

SeaTunnel 2023-07-26
1405

点亮Star⭐️支持我们: https://github.com/apache/seatunnel

SeaTunnel 是 Apache 软件基金会下的新一代分布式超高性能云原生数据同步工具高性能开源大数据集成工具,为数据集成场景提供灵活易用、易扩展并支持千亿级数据集成的解决方案。SeaTunnel 可以选择在 SeaTunnel Zeta引擎上运行,也可以选择在 Apache Flink 或 Spark 引擎上运行。

#01 安装

  •  Java 运行环境jdk8
  •  下载解压seatunnel
wget https://dlcdn.apache.org/seatunnel/2.3.2/apache-seatunnel-2.3.2-bin.tar.gz
tar -xvf apache-seatunnel-2.3.2-bin.tar.gz
  
  • 修改配置,配置需要用到的插件
      config/plugin_config  
    复制
    • 更新安装插件
        sh bin/install-plugin.sh 2.3.2
      复制

      #02 功能说明

      在 SeaTunnel 配置 1 个示例大概分成 4 个部分,env 主要是用于配置数据集成任务的环境信息,比如并行度、任务的执行模式等。其他三个包括 Source、Transform 和 Sink,分别对应数据从一个目标,经过一个转换过程,输出到另一个目标,所以,这 4 个部分就把整个数据集成的过程描述得很清晰。
      支持SeaTunel Zeta、Spark、Flink数据同步引擎, 其中SeaTunnel 自己的同步引擎是Zeta。
      Zeta Engine 是一个专门为数据同步场景设计和开发的数据同步引擎,更快、更稳定、更省资源也更加易用,在全球多种开源同步引擎测试比对情况下,Zeta 性能都遥遥领先。

      #03 功能数据同步应用

      • 启动Zeta集群
      sh  seatunnel-cluster.sh --daemon

      • 停用Zeta集群
      sh stop-seatunnel-cluster.sh

      • 数据导入Csv->Starrocks
        env {
        execution.parallelism = 2
        job.mode = "BATCH"
        checkpoint.interval = 10000
        }


        source {
        LocalFile {
        delimiter = ","
        schema {
        fields {
        id = int
        name = string
        age = string
        status = int
        }
        }
        path = "/data/seatunnel/demo1"
        file_format_type = "csv"
        }
        }


        sink {
        StarRocks {
        nodeUrls = ["192.0.0.2:8030"]
        base-url = "jdbc:mysql://192.0.0.2:9030"
        username = root
        password = "*****"
        database = "dataplat"
        table = "t_jdbc_test"
        batch_max_rows = 10
        schema {
        fields {
        id = int
        name = string
        age = string
        status = int
        }
        }
        }
        }
        复制

        本地运行
          ./bin/seatunnel.sh --config ./config/v2.batch.config.sr -e local
          复制

          提交到Zeta集群
            ./bin/seatunnel.sh --config ./config/v2.batch.config.sr -e cluster
            复制

            • 数据同步Kafka->Starrocks

            复制
              env {
              # You can set SeaTunnel environment configuration here
              execution.parallelism = 2
              job.mode = "BATCH"
              checkpoint.interval = 10000
              #execution.checkpoint.interval = 10000
              #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint "
              }


              source {
              Kafka {
              result_table_name = "kafka_test"
              schema = {
              fields {
              id = int
              name = string
              age = string
              status = int
              }
              }
              format = text
              field_delimiter = "#"
              topic = "topic3"
              bootstrap.servers = "192.0.0.1:9092"
              kafka.config = {
              client.id = client_1
              auto.offset.reset = "earliest"
              enable.auto.commit = "false"
              }
              }
              }


              sink {
              StarRocks {
              nodeUrls = ["192.0.0.2:8030"]
              base-url = "jdbc:mysql://192.0.0.2:9030"
              username = root
              password = "******************"
              database = "dataplat"
              table = "t_jdbc_test"
              batch_max_rows = 10
              schema {
              fields {
              id = int
              name = string
              age = string
              status = int
              }
              }
              }
              }
              复制

              提交到本地flink
                bin/start-seatunnel-flink-15-connector-v2.sh -c config/v2.batch.config.sr.kafka
                复制
                提交到remote flink
                  bin/start-seatunnel-flink-15-connector-v2.sh  -m 192.1.1.3:8081 -c config/v2.batch.config.sr.kafka
                  复制

                  提交到本地spark
                    bin/start-seatunnel-spark-3-connector-v2.sh --master local --deploy-mode client   -c config/v2.batch.config.sr.kafka
                    复制

                    提交到remote spark
                      bin/start-seatunnel-spark-3-connector-v2.sh   -m spark://192.1.1.3:7077 -c  --deploy-mode client  config/v2.batch.config.sr.kafka
                      复制
                      其他的插件配置参考
                      http://seatunnel.incubator.apache.org/docs/2.3.2/category/source-v2
                      http://seatunnel.incubator.apache.org/docs/2.3.2/category/sink-v2

                      #04 seatunnel-web 安装

                      • 首先需要安装DS
                      https://dolphinscheduler.apache.org/zh-cn/docs/3.1.5/guide/installation/standalone

                      安装启动后用admin/dolphinscheduler123登录
                      配置以下信息用户下面seatunnel-web yml中的ds配置。
                        "Security" -> "Tenant Manage" -> "Create Tenant"
                        Create Project for SeaTunnel Web
                        Create Token for SeaTunnel Web
                        复制

                        • 安装web
                        下载最新代码https://github.com/apache/seatunnel-web

                        解压编译源码:
                          cd seatunnel-web-main
                          sh build.sh code


                          unzip apache-seatunnel-web-incubating-1.0.0-SNAPSHOT.zip

                          编辑 seatunnel_server_env.sh 配置mysql元数据信息
                            sh init_sql.sh
                            编辑数据库连接和ds连接:
                              /data/seatunnel-web-main/conf/application.yml

                              启动
                                sh bin/seatunnel-backend-daemon.sh start

                                复制
                                启动成功用admin/admin登录

                                使用具体参考:
                                https://github.com/apache/seatunnel-web/blob/main/README.md

                                Apache SeaTunnel





                                Apache SeaTunnel 是一个分布式、高性能、易扩展、用于海量数据(离线&实时)同步和转化的数据集成平台

                                仓库地址: 
                                https://github.com/apache/seatunnel

                                网址:
                                https://seatunnel.apache.org/

                                Apache SeaTunnel 下载地址:
                                https://seatunnel.apache.org/download
                                 
                                衷心欢迎更多人加入!

                                我们相信,在「Community Over Code」(社区大于代码)、「Open and Cooperation」(开放协作)、「Meritocracy」(精英管理)、以及「多样性与共识决策」等 The Apache Way 的指引下,我们将迎来更加多元化和包容的社区生态,共建开源精神带来的技术进步!


                                我们诚邀各位有志于让本土开源立足全球的伙伴加入 SeaTunnel 贡献者大家庭,一起共建开源!

                                提交问题和建议:
                                https://github.com/apache/seatunnel/issues

                                贡献代码:
                                https://github.com/apache/seatunnel/pulls

                                订阅社区开发邮件列表 : 
                                dev-subscribe@seatunnel.apache.org

                                开发邮件列表:
                                dev@seatunnel.apache.org

                                加入 Slack:
                                https://join.slack.com/t/apacheseatunnel/shared_invite/zt-1kcxzyrxz-lKcF3BAyzHEmpcc4OSaCjQ

                                关注 Twitter: 
                                https://twitter.com/ASFSeaTunnel

                                精彩推荐




                                Apache SeaTunnel Connector 使用文档和使用案例有奖征稿来了!一起玩开源




                                使用 Apache SeaTunnel 实现 Kafka Souce 解析复杂 Json 案例




                                讲师征集令 | Apache SeaTunnel Meetup 分享嘉宾火热招募中!



                                点击阅读原文,点亮Star⭐️!


                                文章转载自SeaTunnel,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                评论