Apache SeaTunnel 3 分钟入门指南

简介: Apache SeaTunnel 3 分钟入门指南



简介


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

1

环境准备

--connectors-v2--
connector-fake
connector-console
--end--


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` 文件只保留如下内容:

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 {}
}

然后运行命令安装 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
目录
打赏
0
0
0
0
1200
分享
相关文章
从零手写实现 apache Tomcat-01-入门介绍
创建简易Tomcat涉及理解其作为Java服务器的角色,建立HTTP服务器,实现Servlet接口处理动态和静态内容,以及启动和关闭服务器。项目mini-cat是一个简化版Tomcat实现,支持Servlet、静态网页和基础功能。可通过maven添加依赖并运行测试类快速体验。开源项目位于[GitHub](https://github.com/houbb/minicat)。
Apache Calcite入门
Apache Calcite入门
455 0
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
117 0
从零手写实现 apache Tomcat-02-web.xml 入门详细介绍
`web.xml`是Java Web应用的核心配置文件,描述应用工作方式。它包含Servlet、Filter和Listener的定义。例如,示例展示了如何配置名为`my`的Servlet处理`/my`请求,`LoggingFilter`拦截所有请求,以及`MyServletContextAttrListener`监听应用事件。`web.xml`是服务器理解应用结构与行为的指南。迷你版Tomcat实现——mini-cat(开源:https://github.com/houbb/minicat)。
性能工具之 Apache Bench 入门使用
ab 全称为:apache bench,ab 为小型压力工具,对于在 Linux 中简单压测 HTTP 接口轻巧灵活。
145 1
ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
【4月更文挑战第8天】ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
305 0
Apache Hadoop入门指南:搭建分布式大数据处理平台
【4月更文挑战第6天】本文介绍了Apache Hadoop在大数据处理中的关键作用,并引导初学者了解Hadoop的基本概念、核心组件(HDFS、YARN、MapReduce)及如何搭建分布式环境。通过配置Hadoop、格式化HDFS、启动服务和验证环境,学习者可掌握基本操作。此外,文章还提及了开发MapReduce程序、学习Hadoop生态系统和性能调优的重要性,旨在为读者提供Hadoop入门指导,助其踏入大数据处理的旅程。
975 0

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等