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.pswp.cn/news/900812.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900812.shtml
英文地址,請注明出處:http://en.pswp.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井噴式增長,盡管出現了許多改進版本,但依舊面臨著諸多挑戰,例如實現照片級真實感、應對高存儲需求,而 “懸浮的高斯核” 問題就是其中之一。浮動高斯核通常由輸入圖像中的曝光或顏色不一致引發,也可能…