SeaTunnel系列之:Apache SeaTunnel编译和安装

Apache SeaTunnel编译

在本节中,我们将向您展示如何为 SeaTunnel 设置开发环境,然后在 JetBrains IntelliJ IDEA 中运行一个简单的示例。

您可以在任何您喜欢的开发环境中开发或测试 SeaTunnel 代码,但这里我们使用 JetBrains IDEA 作为示例,逐步教您。

Prepare

在我们开始讨论如何设置环境之前,需要做一些准备工作。请确保你已经安装了以下软件:

  • git已安装。
  • (目前支持JDK8/JDK11)已安装,并且设置了JAVA_HOME。
  • (目前仅支持scala 2.11.12)已安装。
  • IDEA已安装。

编译

克隆源代码

首先,您需要从 GitHub 克隆 SeaTunnel 源代码。

bash 复制代码
git clone git@github.com:apache/seatunnel.git

本地安装子项目

克隆源代码后,您应该运行 ./mvnw 命令将子项目安装到 maven 本地存储库。否则,您的代码无法在 JetBrains IntelliJ IDEA 中正确启动。

bash 复制代码
./mvnw install -Dmaven.test.skip

从源代码构建 SeaTunnel

安装 maven 后,您可以使用以下命令进行编译和打包。

bash 复制代码
mvn clean package -pl seatunnel-dist -am -Dmaven.test.skip=true

构建子模块

如果要单独构建子模块,可以使用以下命令进行编译和打包。

bash 复制代码
# This is an example of building the redis connector separately

 mvn clean package -pl seatunnel-connectors-v2/connector-redis -am -DskipTests -T 1C

安装 JetBrains IDEA Scala 插件

现在,你可以打开你的 JetBrains IntelliJ IDEA 并浏览源代码。但在 IDEA 中构建 Scala 代码之前,你还应该安装 JetBrains IntelliJ IDEA 的 Scala 插件。

安装 JetBrains IDEA Lombok 插件

在运行以下示例之前,您还应该安装 JetBrains IntelliJ IDEA 的 Lombok 插件。

代码风格

Apache SeaTunnel 使用 Spotless 进行代码风格和格式检查。你可以运行以下命令,Spotless 将自动修复代码风格和格式错误:

bash 复制代码
./mvnw spotless:apply

你可以将预提交钩子文件 /tools/spotless_check/pre-commit.sh 复制到你的 .git/hooks/ 目录中,这样每次你使用 git commit 提交代码时,Spotless 都会自动为你修复问题。

运行简单示例

完成上述所有步骤后,您就完成了环境设置,并可以运行我们提供的开箱即用的示例。所有示例都在 seatunnel-examples 模块中,您可以选择一个您感兴趣的示例,并根据需要在 IDEA 中运行或调试。

这里我们以 seatunnel-examples/seatunnel-engine-examples/src/main/java/org/apache/seatunnel/example/engine/SeaTunnelEngineLocalExample.java 为例,当您成功运行它时,可以看到如下输出:

bash 复制代码
2024-08-10 11:45:32,839 INFO  org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand - 
***********************************************
           Job Statistic Information
***********************************************
Start Time                : 2024-08-10 11:45:30
End Time                  : 2024-08-10 11:45:32
Total Time(s)             :                   2
Total Read Count          :                   5
Total Write Count         :                   5
Total Failed Count        :                   0
***********************************************

不仅如此

我们所有的示例都使用了简单的数据源和接收器,以减少依赖并便于运行。您可以在 resources/examples 中更改示例配置。如果您希望使用 PostgreSQL 作为数据源并将数据输出到控制台,可以将配置更改为如下内容。请注意,当使用除 FakeSourceConsole 之外的连接器时,需要修改 seatunnel-example 相应子模块中的 pom.xml 文件中的依赖项。

bash 复制代码
env {
  parallelism = 1
  job.mode = "BATCH"
}
source {
    Jdbc {
        driver = org.postgresql.Driver
        url = "jdbc:postgresql://host:port/database"
        username = postgres
        password = "123456"
        query = "select * from test"
        table_path = "database.test"
    }
}

sink {
  Console {}
}

安装

下载 SeaTunnel 发布包

下载二进制包

访问 SeaTunnel 下载页面 下载最新的二进制包 seatunnel-<‍version‍>-bin.tar.gz。

或者您也可以通过终端下载:

bash 复制代码
export version="2.3.11"
wget "https://archive.apache.org/dist/seatunnel/${version}/apache-seatunnel-${version}-bin.tar.gz"
tar -xzvf "apache-seatunnel-${version}-bin.tar.gz"

下载连接器插件

从版本 2.2.0-beta 开始,二进制包默认不再提供连接器依赖。因此,首次使用时,您需要运行以下命令来安装连接器(或者,您可以手动从 Apache Maven 仓库 下载连接器并将其移动到 connectors/ 目录。对于 2.3.5 之前的版本,请将它们放置在 connectors/seatunnel 目录中):

bash 复制代码
sh bin/install-plugin.sh

如果你需要特定的连接器版本,例如 2.3.11,你需要执行以下命令:

bash 复制代码
sh bin/install-plugin.sh 2.3.11

通常,你并不需要所有的连接器插件。你可以通过配置 config/plugin_config 来指定所需的插件。例如,如果你希望示例应用程序正常工作,你需要 connector-consoleconnector-fake 插件。你可以按以下方式修改 plugin_config 配置文件:

bash 复制代码
--seatunnel-connectors--
connector-fake
connector-console
--end--

你可以在 ${SEATUNNEL_HOME}/connectors/plugins-mapping.properties 文件中找到所有支持的连接器及其对应的 plugin_config 配置名称。

提示:

如果你希望通过手动下载连接器来安装连接器插件,只需下载相关的连接器插件并将其放置在 ${SEATUNNEL_HOME}/connectors/ 目录下。

从源代码构建 SeaTunnel

下载源代码

从源代码构建。下载源代码的方式与下载二进制包的方式相同。您可以从下载页面下载源代码,或者从Github 仓库克隆源代码。

构建源代码

bash 复制代码
cd seatunnel
sh ./mvnw clean install -DskipTests -Dskip.spotless=true
# get the binary package
cp seatunnel-dist/target/apache-seatunnel-2.3.11-bin.tar.gz /The-Path-You-Want-To-Copy

cd /The-Path-You-Want-To-Copy
tar -xzvf "apache-seatunnel-${version}-bin.tar.gz"

当从源代码构建时,所有连接器插件和一些必要的依赖项(例如:MySQL驱动程序)都包含在二进制包中。您可以直接使用这些连接器插件,而无需单独安装它们。

运行 SeaTunnel

现在您已经下载了 SeaTunnel 二进制包和连接器插件。接下来,您可以选择不同的引擎选项来运行同步任务。

如果您使用 Flink 运行同步任务,则无需部署 SeaTunnel 引擎服务集群。您可以参考使用 Flink 快速开始来运行您的同步任务。

如果您使用 Spark 运行同步任务,则同样无需部署 SeaTunnel 引擎服务集群。您可以参考使用 Spark 快速开始来运行您的同步任务。

如果您使用内置的 SeaTunnel 引擎(Zeta)来运行任务,则需要先部署 SeaTunnel 引擎服务。请参考使用 SeaTunnel 引擎快速开始。

相关推荐
SeaTunnel3 天前
Apache SeaTunnel 支持 Metalake 开发了!避免任务配置敏感信息暴露
大数据·开源·apache·个人开发·数据集成·seatunnel·看开源之夏
ApacheSeaTunnel1 个月前
从小时级到分钟级:多点DMALL如何用Apache SeaTunnel把数据集成成本砍到1/3?
大数据·开源·数据集成·seatunnel·技术分享
SeaTunnel2 个月前
实测有效|用 SeaTunnel 免费实现 MySQL→Oracle 实时同步,步骤超细
数据库·mysql·oracle·开源·seatunnel·数据同步·连接器
Johny_Zhao3 个月前
SeaTunnel的搭建部署以及测试
linux·网络·网络安全·信息安全·kubernetes·云计算·containerd·devops·seatunnel·系统运维
ApacheSeaTunnel3 个月前
从《中国开源年度报告》看中国开源力量的十年变迁中,Apache SeaTunnel 的跃迁
开源·seatunnel
ApacheSeaTunnel3 个月前
从日志到告警,带你用好 SeaTunnel 的事件监听能力
大数据·数据集成·seatunnel·技术分享
ApacheSeaTunnel4 个月前
破 400!Apache SeaTunnel 成为全球开发者共建热土
大数据·开源·github·seatunnel
ApacheSeaTunnel4 个月前
MySQL 数据同步至 S3file,并接入 Hive 访问:SeaTunnel 实践指南
大数据·mysql·开源·数据集成·s3·seatunnel·数据同步
SunTecTec4 个月前
【阿里巴巴JAVA开发手册】IDE的text file encoding设置为UTF-8; IDE中文件的换行符使用Unix格式,不要使用Windows格式。
intellij-idea·seatunnel
SeaTunnel4 个月前
SeaTunnel 社区月报(5-6 月):全新功能上线、Bug 大扫除、Merge 之星是谁?
大数据·开源·bug·数据集成·seatunnel