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

Apache SeaTunnel 3 分钟入门指南

SeaTunnel 2023-04-19
3073

点击蓝字 关注我们



简介


SeaTunnel 是 Apache 软件基金会下的一个开源大数据集成工具,为数据集成场景提供灵活易用、易扩展并支持千亿级数据集成的解决方案。SeaTunnel 可以选择 SeaTunnel Zeta [1] 引擎上运行,也可以选择在 Apache Flink 或 Spark 引擎上运行。Seaunnel 为实时(CDC)和批量数据提供高性能数据同步能力。本指南将引导您快速入门 SeaTunnel,为您的大数据集成项目提供支持(为了使用上的方便,本文将以 SeaTunnel Zeta 为运行引擎)。

1

环境准备












1. 如果没有 Java 运行环境,请首先下载一个 Java 环境:
  • Java (Java 8 or 11, 其他大于 Java 8 版本理论上也能支持) 确保在终端执行 `java -version` 可以输出 java 版本信息,如下
2. 下载并安装 SeaTunnel 发行版:从官方网站(https://seatunnel.apache.org/download) 下载最新的 SeaTunnel 发行版,并解压到合适的目录。

3. 安装 Connector 插件:需要什么数据源插件就安装什么[2],非常简单。您可以通过配置 `config/plugin_config` 文件来指定所需的插件。如果你初次只是想体验一下 SeaTunnel,  您只需要保留 2 个 connector-fake(造数插件)、connector-console(打印到控制台插件) 2 个插件就可以了,您可以修改 `plugin_config` 文件只保留如下内容: 
    --connectors-v2--
    connector-fake
    connector-console
    --end--

    然后运行命令安装 connector (注:从 2.2.0-beta 开始,二进制包默认不提供 connector 依赖,所以第一次使用需要下载 connector 插件)
      sh bin/install-plugin.sh 2.3.1

      执行完毕后,在 `connectors/seatunnel` 目录下会出现相应的 connector jar。
      注意:该操作需要联网,你也可以手动下载 connector 从 [Apache Maven Repository](https://repo.maven.apache.org/maven2/org/apache/seatunnel )  下载,然后手动移动到 `connectors/seatunnel` 目录

      2

      配置 SeaTunnel 同步作业












      添加作业配置文件。编辑 config/v2.batch.config.template  文件,该文件决定了在启动 SeaTunnel 后数据输入、处理和输出的方式及逻辑。以下是一个配置文件示例:
        env {  
        execution.parallelism = 2
        job.mode = "BATCH"
        #checkpoint.interval = 10000
        }
        source {
        FakeSource {
        parallelism = 2
        result_table_name = "fake"
        row.num = 16
        schema = {
        fields {
        name = "string"
        age = "int"
        }
        }
        }
        }
        sink {
        Console {}
        }

        3

        运行 SeaTunnel 作业












        在命令行中,切换到 SeaTunnel 解压目录, 运行以下命令,启动 SeaTunnel 作业:
          cd "apache-seatunnel-incubating-${version}"
          ./bin/seatunnel.sh --config ./config/v2.batch.config.template -e local

          此命令将以 local (本地模式) 运行您的 SeaTunnel 作业。如果您需要以 SeaTunnel Cluster (集群模式) 请参考[3]。

          当您运行上述命令时,您可以在控制台中看到其输出。您可以将其视为命令是否成功运行的标志。

          SeaTunnel 控制台将打印如下日志:
            2023-04-11 18:33:30,547 INFO  org.apache.seatunnel.connectors.seatunnel.fake.source.FakeSourceSplitEnumerator - Assigning splits to readers 0 [FakeSourceSplit(splitId=0, rowNum=16)]
            2023-04-11 18:33:30,551 INFO org.apache.seatunnel.connectors.seatunnel.fake.source.FakeSourceSplitEnumerator - Assigning splits to readers 1 [FakeSourceSplit(splitId=1, rowNum=16)]
            2023-04-11 18:33:31,489 INFO org.apache.seatunnel.connectors.seatunnel.fake.source.FakeSourceReader - 16 rows of data have been generated in split(1). Generation time: 1681209211485
            2023-04-11 18:33:31,489 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=1 rowIndex=1: SeaTunnelRow#tableId= SeaTunnelRow#kind=INSERT : jBHJM, 1251717627
            2023-04-11 18:33:31,489 INFO org.apache.seatunnel.connectors.seatunnel.fake.source.FakeSourceReader - Closed the bounded fake source
            2023-04-11 18:33:31,489 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=1 rowIndex=2: SeaTunnelRow#tableId= SeaTunnelRow#kind=INSERT : hOPkY, 565194744
            2023-04-11 18:33:31,489 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=1 rowIndex=3: SeaTunnelRow#tableId= SeaTunnelRow#kind=INSERT : QRUsG, 706574302
            ...............

            当任务运行完毕,会出现本次任务的汇总信息:
              2023-04-11 18:33:32,639 INFO  org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand -
              ***********************************************
              Job Statistic Information
              ***********************************************
              Start Time : 2023-04-11 18:33:27
              End Time : 2023-04-11 18:33:32
              Total Time(s) : 4
              Total Read Count : 32
              Total Write Count : 32
              Total Failed Count : 0
              ***********************************************

              至此,SeaTunnel 就已经成功运行完成了!



              总结


              通过遵循本指南,您已经成功地搭建并运行了一个基本的 SeaTunnel 任务。您现在可以开始尝试使用 SeaTunnel 解决您的数据集成需求。怎么样,是不是非常非常简单易上手,快来试一试吧!

              如需了解更多关于 SeaTunnel 的详细信息,请访问官方文档:
              https://seatunnel.apache.org/  

              也欢迎联系贡献者微信:seatunnel1 加入我们的 SeaTunnel 官方用户群。

              附录,已经在使用 SeaTunnel 的部分用户

              1. https://seatunnel.apache.org/docs/2.3.1/seatunnel-engine/about
              2. https://seatunnel.apache.org/docs/2.3.1/start-v2/locally/deployment#step-3-install-connectors-plugin
              3. https://seatunnel.apache.org/docs/2.3.1/seatunnel-engine/cluster-mode


              Apache SeaTunnel


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

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

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

              Proposal:
              https://cwiki.apache.org/confluence/display/INCUBATOR/SeaTunnelPro

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

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

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

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

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

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

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

              加入 Slack:
              https://join.slack.com/t/apacheseatunnel/shared_invite/zt-1cmonqu2q-ljomD6bY1PQ~oOzfbxxXWQ

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

              精彩推荐




              【每周 FAQ】第二期 | 关于 Apache SeaTunnel 的疑问,你有答案吗?




              SeaTunnel 日志框架集成改造,确保 100+ 连接器日志稳定输出




              对话 SQL Transform 功能贡献者马骋原



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

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

              评论