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

Apache SeaTunnel编译

  • Prepare
  • 编译
    • 克隆源代码
    • 本地安装子项目
    • 从源代码构建 SeaTunnel
    • 构建子模块
    • 安装 JetBrains IDEA Scala 插件
    • 安装 JetBrains IDEA Lombok 插件
    • 代码风格
    • 运行简单示例
    • 不仅如此
  • 安装
    • 下载 SeaTunnel 发布包
    • 下载连接器插件
    • 从源代码构建 SeaTunnel
  • 运行 SeaTunnel

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

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

Prepare

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

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

编译

克隆源代码

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

git clone git@github.com:apache/seatunnel.git

本地安装子项目

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

./mvnw install -Dmaven.test.skip

从源代码构建 SeaTunnel

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

mvn clean package -pl seatunnel-dist -am -Dmaven.test.skip=true

构建子模块

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

# This is an example of building the redis connector separatelymvn 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 将自动修复代码风格和格式错误:

./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 为例,当您成功运行它时,可以看到如下输出:

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 文件中的依赖项。

env {parallelism = 1job.mode = "BATCH"
}
source {Jdbc {driver = org.postgresql.Driverurl = "jdbc:postgresql://host:port/database"username = postgrespassword = "123456"query = "select * from test"table_path = "database.test"}
}sink {Console {}
}

安装

下载 SeaTunnel 发布包

下载二进制包

访问 SeaTunnel 下载页面 下载最新的二进制包 seatunnel-<‍version‍>-bin.tar.gz。
或者您也可以通过终端下载:

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 目录中):

sh bin/install-plugin.sh

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

sh bin/install-plugin.sh 2.3.11

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

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

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

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

从源代码构建 SeaTunnel

下载源代码

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

构建源代码

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-Copycd /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 引擎快速开始。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript/React中,...(三个连续的点)被称为 扩展运算符(Spread Operator) 或 剩余运算符(Rest Operator)

const processOrder (order) > {const tax order.total * 0.1;const finalAmount order.total tax;return { ...order, tax, finalAmount }; }; 解释一下&#xff0c;特别&#xff1a;...?在JavaScript/React中&#xff0c;...&#xff08;三个连续的点&#xff09;被称…

FRP的proxies只是建立通道,相当于建立与服务器沟通的不同通道而不是直接将路由器与服务器云端沟通

没有更好的办法了吗&#xff0c;我看frpc.toml的里面可以设置两个proxies那我esp32的监听端口设置在frpc.toml里面它不也能跟云服务器建立联系吗&#xff0c;比如远程与本地端口都配置为5112那云服务器接收到的5112访问会以frp配置的本地端口5112转发到frp客户端的路由器&#…

#在docker中启动mysql之类的容器时,没有挂载的数据...在后期怎么把数据导出外部

如果要导出 Docker 容器内的 整个目录&#xff08;包含所有文件及子目录&#xff09;&#xff0c;可以使用以下几种方法&#xff1a; 方法 1&#xff1a;使用 docker cp 直接复制目录到宿主机 适用场景&#xff1a;容器正在运行或已停止&#xff08;但未删除&#xff09;。 命…

Java的JDK、JRE、JVM关系与作用

Java的JDK、JRE、JVM关系与作用 java中的JDK、JRE和JVM是三个核心组件&#xff0c;各自承担不同角色&#xff0c;且存在层级依赖关系 1. JVM&#xff08;Java Virtual Machine&#xff0c;Java虚拟机&#xff09; 是什么&#xff1a; JVM是虚拟的计算机&#xff0c;能够执行…

C++学习之套接字并发服务器

目录 1.昨天套接字服务器的弊端 2.如何通过多进程方式实现服务器并发 3.多进程服务器-1 4.多进程服务器-2 5.多进程版程序-回收子进程被信号中断的处理 6.多线程版TCP服务处理思路 7.多线程并发服务器编写 8.为什么不能把文件描述符地址传到子线程中 9.多线程程序测试 …

机器学习新范式:Kubernetes + Kubeflow,解锁模型训练与部署的高效密码

一、Kubernetes在机器学习模型训练与部署中的作用 Kubernetes作为一个强大的容器编排平台&#xff0c;为机器学习模型的训练与部署提供了以下核心支持&#xff1a; 分布式训练支持&#xff1a;Kubernetes能够自动化部署和管理PyTorch等机器学习框架的分布式训练任务。通过利用…

动态科技感html导航网站源码

源码介绍 动态科技感html导航网站源码&#xff0c;这个设计完美呈现了科幻电影中的未来科技界面效果&#xff0c;适合展示技术类项目或作为个人作品集的入口页面&#xff0c;自适应手机。 修改卡片中的链接指向你实际的HTML文件可以根据需要调整卡片内容、图标和颜色要添加更…

数字内容智能推荐优化策略

个性化推荐算法构建路径 构建高效数字内容体验的推荐系统&#xff0c;需以多源数据融合为基础框架。首先通过用户画像建模整合人口属性、行为轨迹及兴趣标签&#xff0c;结合协同过滤与深度学习算法建立内容关联矩阵。在此基础上&#xff0c;引入上下文感知机制&#xff0c;动…

# 深度学习中的优化算法详解

深度学习中的优化算法详解 优化算法是深度学习的核心组成部分&#xff0c;用于最小化损失函数以更新神经网络的参数。本文将详细介绍深度学习中常用的优化算法&#xff0c;包括其概念、数学公式、代码示例、实际案例以及图解&#xff0c;帮助读者全面理解优化算法的原理与应用…

汽车的四大工艺

文章目录 冲压工艺核心流程关键技术 焊接工艺核心流程 涂装工艺核心流程 总装工艺核心流程终检与测试静态检查动态检查四轮定位制动转鼓测试淋雨测试总结 简单总结下汽车的四大工艺&#xff08;从网上找了一张图&#xff0c;感觉挺全面的&#xff09;。 冲压工艺 将金属板材通过…

Perl 发送邮件

Perl 发送邮件 概述 Perl 是一种强大的编程语言&#xff0c;广泛应用于系统管理、网络编程和数据分析等领域。其中&#xff0c;使用 Perl 发送邮件是一项非常实用的技能。本文将详细介绍使用 Perl 发送邮件的方法&#xff0c;包括必要的配置、代码示例以及注意事项。 准备工…

关于柔性数组

以前确实没关注过这个问题&#xff0c;一直都是直接定义固定长度的数组&#xff0c;尽量减少指针的操作。 柔性数组主要是再结构体里面定义一个长度为0的数组&#xff0c;这里和定义一个指针式存在明显去别的。定义一个指针会占用内存&#xff0c;但是定义一个长度为0的数组不会…

NOIP2011提高组.玛雅游戏

目录 题目算法标签: 模拟, 搜索, d f s dfs dfs, 剪枝优化思路*详细注释版代码精简注释版代码 题目 185. 玛雅游戏 算法标签: 模拟, 搜索, d f s dfs dfs, 剪枝优化 思路 可行性剪枝 如果某个颜色的格子数量少于 3 3 3一定无解因为要求字典序最小, 因此当一个格子左边有…

go游戏后端开发29:实现游戏内聊天

接下来&#xff0c;我们再来开发一个功能&#xff0c;这个功能相对简单&#xff0c;就是聊天。在游戏里&#xff0c;我们会收到一个聊天请求&#xff0c;我们只需要做一个聊天推送即可。具体来说&#xff0c;就是谁发的消息&#xff0c;就推送给所有人&#xff0c;包括消息内容…

基于大数据的美团外卖数据可视化分析系统

【大数据】基于大数据的美团外卖数据可视化分析系统 &#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统通过对海量外卖数据的深度挖掘与分析&#xff0c;能够为美团外卖平台提供运营决策支…

[ctfshow web入门] web32

前置知识 协议相关博客&#xff1a;https://blog.csdn.net/m0_73353130/article/details/136212770 include&#xff1a;include "filename"这是最常用的方法&#xff0c;除此之外还可以 include url&#xff0c;被包含的文件会被当做代码执行。 data://&#xff1a…

kotlin中const 和val的区别

在 Kotlin 中&#xff0c;const 和 val 都是用来声明常量的&#xff0c;但它们的使用场景和功能有所不同&#xff1a; 1. val: val 用于声明只读变量&#xff0c;也就是不可修改的变量&#xff08;类似于 Java 中的 final 变量&#xff09;。它可以是任何类型&#xff0c;包括…

【STM32】综合练习——智能风扇系统

目录 0 前言 1 硬件准备 2 功能介绍 3 前置配置 3.1 时钟配置 3.2 文件配置 4 功能实现 4.1 按键功能 4.2 屏幕功能 4.3 调速功能 4.4 倒计时功能 4.5 摇头功能 4.6 测距待机功能 0 前言 由于时间关系&#xff0c;暂停详细更新&#xff0c;本文章中&#xff0c;…

任务扩展-输入商品原价,折扣并计算促销后的价格

1.在HbuilderX软件中创建项目&#xff0c;把项目的路径放在xampp中的htdocs 2.创建php文件&#xff1a;price.php,price_from.php 3.在浏览器中&#xff0c;运行项目效果&#xff0c;通过xampp中admin进行运行浏览&#xff0c;在后添加文件名称即可&#xff0c;注意&#xff…

3D Gaussian Splatting as MCMC 与gsplat中的应用实现

3D高斯泼溅(3D Gaussian splatting)自2023年提出以后,相关研究paper井喷式增长,尽管出现了许多改进版本,但依旧面临着诸多挑战,例如实现照片级真实感、应对高存储需求,而 “悬浮的高斯核” 问题就是其中之一。浮动高斯核通常由输入图像中的曝光或颜色不一致引发,也可能…