Apache SeaTunnel 集群部署超詳細(xì)教程
SeaTunnel Engine 的Master
服務(wù)和Worker
服務(wù)分離,每個(gè)服務(wù)單獨(dú)一個(gè)進(jìn)程。
- Master節(jié)點(diǎn)只負(fù)責(zé)作業(yè)調(diào)度,RESTful API,任務(wù)提交等,Imap數(shù)據(jù)只存儲(chǔ)在Master節(jié)點(diǎn)中。
- Worker節(jié)點(diǎn)只負(fù)責(zé)任務(wù)的執(zhí)行,不參與選舉成為Master,也不存儲(chǔ)Imap數(shù)據(jù)。
在所有Master
節(jié)點(diǎn)中,同一時(shí)間只有一個(gè)Master
節(jié)點(diǎn)工作,其他Master
節(jié)點(diǎn)處于standby
狀態(tài)。
當(dāng)Master
節(jié)點(diǎn)宕機(jī)或心跳超時(shí),會(huì)從其它節(jié)點(diǎn)中選舉出一個(gè)新的Master Active
節(jié)點(diǎn)。
這是最推薦的一種使用方式,在該模式下Master的負(fù)載會(huì)很小,Master
有更多的資源用來進(jìn)行作業(yè)的調(diào)度,任務(wù)的容錯(cuò)指標(biāo)監(jiān)控以及提供Rest API
服務(wù)等,會(huì)有更高的穩(wěn)定性。
同時(shí)Worker
節(jié)點(diǎn)不存儲(chǔ)Imap
的數(shù)據(jù),所有的Imap
數(shù)據(jù)都存儲(chǔ)在Master
節(jié)點(diǎn)中,即使Worker
節(jié)點(diǎn)負(fù)載高或者掛掉,也不會(huì)導(dǎo)致Imap
數(shù)據(jù)重新分布。
下載安裝包
在開始下載SeaTunnel之前,您需要確保您已經(jīng)安裝了SeaTunnel所需要的以下軟件:
安裝Java (Java 8 或 11, 其他高于Java 8的版本理論上也可以工作) 以及設(shè)置
JAVA_HOME
。
進(jìn)入SeaTunnel下載頁面(https://seatunnel.apache.org/download)下載最新版本的發(fā)布版安裝包`seatunnel- -bin.tar.gz`
或者您也可以通過終端下載
export version="2.3.8" wget "https://archive.apache.org/dist/seatunnel/${version}/apache-seatunnel-${version}-bin.tar.gz" tar -xzvf "apache-seatunnel-${version}-bin.tar.gz"
配置 SEATUNNEL_HOME
您可以通過添加 /etc/profile.d/seatunnel.sh
文件來配置 SEATUNNEL_HOME
。
/etc/profile.d/seatunnel.sh
的內(nèi)容如下:
export SEATUNNEL_HOME=${seatunnel install path} export PATH=$PATH:$SEATUNNEL_HOME/bin
配置 Master 節(jié)點(diǎn) JVM 選項(xiàng)
Master節(jié)點(diǎn)的JVM參數(shù)在$SEATUNNEL_HOME/config/jvm_master_options
文件中配置。
# JVM Heap -Xms2g -Xmx2g # JVM Dump -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/seatunnel/dump/zeta-server # Metaspace -XX:MaxMetaspaceSize=2g # G1GC -XX:+UseG1GC
Worker節(jié)點(diǎn)的JVM參數(shù)在$SEATUNNEL_HOME/config/jvm_worker_options
文件中配置。
# JVM Heap -Xms2g -Xmx2g # JVM Dump -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/seatunnel/dump/zeta-server # Metaspace -XX:MaxMetaspaceSize=2g # G1GC -XX:+UseG1GC
配置 SeaTunnel Engine
SeaTunnel Engine 提供許多功能,需要在 seatunnel.yaml
中進(jìn)行配置。
Imap中數(shù)據(jù)的備份數(shù)設(shè)置(該參數(shù)在Worker節(jié)點(diǎn)無效)
SeaTunnel Engine 基于 Hazelcast IMDG
實(shí)現(xiàn)集群管理。集群的狀態(tài)數(shù)據(jù)(作業(yè)運(yùn)行狀態(tài)、資源狀態(tài))存儲(chǔ)在 Hazelcast IMap
。
存儲(chǔ)在 Hazelcast IMap
中的數(shù)據(jù)將在集群的所有節(jié)點(diǎn)上分布和存儲(chǔ)。
Hazelcast
會(huì)分區(qū)存儲(chǔ)在 Imap
中的數(shù)據(jù)。每個(gè)分區(qū)可以指定備份數(shù)量。因此,SeaTunnel Engine 可以實(shí)現(xiàn)集群 HA,無需使用其他服務(wù)(例如 zookeeper)。
backup count
是定義同步備份數(shù)量的參數(shù)。例如,如果設(shè)置為 1,則分區(qū)的備份將放置在一個(gè)其他成員上。如果設(shè)置為 2,則將放置在兩個(gè)其他成員上。
我們建議 backup-count
的值為 min(1, max(5, N/2))。N 是集群節(jié)點(diǎn)的數(shù)量。
seatunnel: engine: backup-count: 1 # 其他配置
由于在分離集群模式下,Worker節(jié)點(diǎn)不存儲(chǔ)Imap數(shù)據(jù),因此Worker節(jié)點(diǎn)的
backup-count
配置無效。
如果Master和Worker進(jìn)程在同一個(gè)機(jī)器上啟動(dòng),Master和Worker會(huì)共用seatunnel.yaml
配置文件,此時(shí)Worker節(jié)點(diǎn)服務(wù)會(huì)忽略backup-count
配置。
Slot配置(該參數(shù)在Master節(jié)點(diǎn)無效)
Slot數(shù)量決定了集群節(jié)點(diǎn)可以并行運(yùn)行的任務(wù)組數(shù)量。一個(gè)任務(wù)需要的Slot的個(gè)數(shù)公式為 N = 2 + P(任務(wù)配置的并行度)。
默認(rèn)情況下SeaTunnel Engine的slot個(gè)數(shù)為動(dòng)態(tài),即不限制個(gè)數(shù)。我們建議slot的個(gè)數(shù)設(shè)置為節(jié)點(diǎn)CPU核心數(shù)的2倍。
動(dòng)態(tài)slot個(gè)數(shù)(默認(rèn))配置如下:
seatunnel: engine: slot-service: dynamic-slot: true # 其他配置
靜態(tài)slot個(gè)數(shù)配置如下:
seatunnel: engine: slot-service: dynamic-slot: false slot-num: 20
由于在分離集群模式下,Master節(jié)點(diǎn)不運(yùn)行任務(wù),所以Master服務(wù)不會(huì)啟動(dòng)Slot服務(wù),因此Master節(jié)點(diǎn)的slot-service
配置無效。
如果Master和Worker進(jìn)程在同一個(gè)機(jī)器上啟動(dòng),Master和Worker會(huì)共用seatunnel.yaml
配置文件,此時(shí)Master節(jié)點(diǎn)服務(wù)會(huì)忽略slot-service
配置。
檢查點(diǎn)管理器(該參數(shù)在Worker節(jié)點(diǎn)無效)
與 Flink 一樣,SeaTunnel Engine 支持 Chandy–Lamport
算法。因此,可以實(shí)現(xiàn)無數(shù)據(jù)丟失和重復(fù)的數(shù)據(jù)同步。
interval
兩個(gè)檢查點(diǎn)之間的間隔,單位是毫秒。如果在作業(yè)配置文件的 env 中配置了 checkpoint.interval
參數(shù),將以作業(yè)配置文件中設(shè)置的為準(zhǔn)。
timeout
檢查點(diǎn)的超時(shí)時(shí)間。如果在超時(shí)時(shí)間內(nèi)無法完成檢查點(diǎn),則會(huì)觸發(fā)檢查點(diǎn)失敗,作業(yè)失敗。如果在作業(yè)的配置文件的env中配置了checkpoint.timeout
參數(shù),將以作業(yè)配置文件中設(shè)置的為準(zhǔn)。
示例
seatunnel: engine: backup-count: 1 print-execution-info-interval: 10 slot-service: dynamic-slot: true checkpoint: interval: 300000 timeout: 10000
checkpoint storage
檢查點(diǎn)是一種容錯(cuò)恢復(fù)機(jī)制。這種機(jī)制確保程序在運(yùn)行時(shí),即使突然遇到異常,也能自行恢復(fù)。
檢查點(diǎn)定時(shí)觸發(fā),每次檢查點(diǎn)進(jìn)行時(shí)每個(gè)Task都會(huì)被要求將自身的狀態(tài)信息(比如讀取kafka時(shí)讀取到了哪個(gè)offset)上報(bào)給檢查點(diǎn)線程,由該線程寫入一個(gè)分布式存儲(chǔ)(或共享存儲(chǔ))。
當(dāng)任務(wù)失敗然后自動(dòng)容錯(cuò)恢復(fù)時(shí),或者通過seatunnel.sh -r
指令恢復(fù)之前被暫停的任務(wù)時(shí),會(huì)從檢查點(diǎn)存儲(chǔ)中加載對(duì)應(yīng)作業(yè)的狀態(tài)信息,并基于這些狀態(tài)信息進(jìn)行作業(yè)的恢復(fù)。
如果集群的節(jié)點(diǎn)大于1,檢查點(diǎn)存儲(chǔ)必須是一個(gè)分布式存儲(chǔ),或者共享存儲(chǔ),這樣才能保證任意節(jié)點(diǎn)掛掉后依然可以在另一個(gè)節(jié)點(diǎn)加載到存儲(chǔ)中的任務(wù)狀態(tài)信息。
檢查點(diǎn)配置只有Master服務(wù)才會(huì)讀取,Worker服務(wù)不會(huì)讀取檢查點(diǎn)配置。如果Master和Worker進(jìn)程在同一個(gè)機(jī)器上啟動(dòng),Master和Worker會(huì)共用
seatunnel.yaml
配置文件,此時(shí)Worker節(jié)點(diǎn)服務(wù)會(huì)忽略checkpoint
配置。
歷史作業(yè)過期配置
每個(gè)完成的作業(yè)的信息,如狀態(tài)、計(jì)數(shù)器和錯(cuò)誤日志,都存儲(chǔ)在 IMap
對(duì)象中。
隨著運(yùn)行作業(yè)數(shù)量的增加,內(nèi)存會(huì)增加,最終內(nèi)存將溢出。因此,您可以調(diào)整 history-job-expire-minutes
參數(shù)來解決這個(gè)問題。
此參數(shù)的時(shí)間單位是分鐘。默認(rèn)值是 1440 分鐘,即一天。
示例
seatunnel: engine: history-job-expire-minutes: 1440
類加載器緩存模式
此配置主要解決不斷創(chuàng)建和嘗試銷毀類加載器所導(dǎo)致的資源泄漏問題。如果您遇到與metaspace空間溢出相關(guān)的異常,您可以嘗試啟用此配置。
為了減少創(chuàng)建類加載器的頻率,在啟用此配置后,SeaTunnel 在作業(yè)完成時(shí)不會(huì)嘗試釋放相應(yīng)的類加載器,以便它可以被后續(xù)作業(yè)使用,也就是說,當(dāng)運(yùn)行作業(yè)中使用的 Source/Sink
連接器類型不是太多時(shí),它更有效。默認(rèn)值是 false。
示例
seatunnel: engine: classloader-cache-mode: true
IMap持久化配置(該參數(shù)在Worker節(jié)點(diǎn)無效)
由于在分離集群模式下,只有Master節(jié)點(diǎn)存儲(chǔ)Imap數(shù)據(jù),Worker節(jié)點(diǎn)不存儲(chǔ)Imap數(shù)據(jù),所以Worker服務(wù)不會(huì)讀取該參數(shù)項(xiàng)。
在SeaTunnel中,我們使用IMap(一種分布式的Map,可以實(shí)現(xiàn)數(shù)據(jù)跨節(jié)點(diǎn)跨進(jìn)程的寫入的讀取 有關(guān)詳細(xì)信息,請(qǐng)參閱 Hazelcast Map
) 來存儲(chǔ)每個(gè)任務(wù)及其task的狀態(tài),以便在任務(wù)所在節(jié)點(diǎn)宕機(jī)后,可以在其他節(jié)點(diǎn)上獲取到任務(wù)之前的狀態(tài)信息,從而恢復(fù)任務(wù)實(shí)現(xiàn)任務(wù)的容錯(cuò)。
默認(rèn)情況下Imap的信息只是存儲(chǔ)在內(nèi)存中,我們可以設(shè)置Imap數(shù)據(jù)的復(fù)本數(shù),具體可參考(Imap中數(shù)據(jù)的備份數(shù)設(shè)置),如果復(fù)本數(shù)是2,代表每個(gè)數(shù)據(jù)會(huì)同時(shí)存儲(chǔ)在2個(gè)不同的節(jié)點(diǎn)中。
一旦節(jié)點(diǎn)宕機(jī),Imap中的數(shù)據(jù)會(huì)重新在其它節(jié)點(diǎn)上自動(dòng)補(bǔ)充到設(shè)置的復(fù)本數(shù)。但是當(dāng)所有節(jié)點(diǎn)都被停止后,Imap中的數(shù)據(jù)會(huì)丟失。當(dāng)集群節(jié)點(diǎn)再次啟動(dòng)后,所有之前正在運(yùn)行的任務(wù)都會(huì)被標(biāo)記為失敗,需要用戶手工通過seatunnel.sh -r
指令恢復(fù)運(yùn)行。
為了解決這個(gè)問題,我們可以將Imap中的數(shù)據(jù)持久化到外部存儲(chǔ)中,如HDFS、OSS等。這樣即使所有節(jié)點(diǎn)都被停止,Imap中的數(shù)據(jù)也不會(huì)丟失,當(dāng)集群節(jié)點(diǎn)再次啟動(dòng)后,所有之前正在運(yùn)行的任務(wù)都會(huì)被自動(dòng)恢復(fù)。
下面介紹如何使用 MapStore
持久化配置。
type
imap
持久化的類型,目前僅支持 hdfs
。
namespace
它用于區(qū)分不同業(yè)務(wù)的數(shù)據(jù)存儲(chǔ)位置,如 OSS 存儲(chǔ)桶名稱。
clusterName
此參數(shù)主要用于集群隔離, 我們可以使用它來區(qū)分不同的集群,如 cluster1、cluster2,這也用于區(qū)分不同的業(yè)務(wù)。
fs.defaultFS
我們使用 HDFS API
讀寫文件,因此使用此存儲(chǔ)需要提供 HDFS
配置。
如果您使用 HDFS,可以像這樣配置:
map: engine*: map-store: enabled: true initial-mode: EAGER factory-class-name: org.apache.seatunnel.engine.server.persistence.FileMapStoreFactory properties: type: hdfs namespace: /tmp/seatunnel/imap clusterName: seatunnel-cluster storage.type: hdfs fs.defaultFS: hdfs://localhost:9000
如果沒有 HDFS,并且您的集群只有一個(gè)節(jié)點(diǎn),您可以像這樣配置使用本地文件:
map: engine*: map-store: enabled: true initial-mode: EAGER factory-class-name: org.apache.seatunnel.engine.server.persistence.FileMapStoreFactory properties: type: hdfs namespace: /tmp/seatunnel/imap clusterName: seatunnel-cluster storage.type: hdfs fs.defaultFS: file:///
如果您使用 OSS,可以像這樣配置:
map: engine*: map-store: enabled: true initial-mode: EAGER factory-class-name: org.apache.seatunnel.engine.server.persistence.FileMapStoreFactory properties: type: hdfs namespace: /tmp/seatunnel/imap clusterName: seatunnel-cluster storage.type: oss block.size: block size(bytes) oss.bucket: oss://bucket name/ fs.oss.accessKeyId: OSS access key id fs.oss.accessKeySecret: OSS access key secret fs.oss.endpoint: OSS endpoint
注意:使用OSS 時(shí),確保 lib目錄下有這幾個(gè)jar.
aliyun-sdk-oss-3.13.2.jar hadoop-aliyun-3.3.6.jar jdom2-2.0.6.jar netty-buffer-4.1.89.Final.jar netty-common-4.1.89.Final.jar seatunnel-hadoop3-3.1.4-uber.jar
作業(yè)調(diào)度策略
當(dāng)資源不足時(shí),作業(yè)調(diào)度策略可以配置為以下兩種模式:
WAIT:等待資源可用。
REJECT:拒絕作業(yè),默認(rèn)值。
示例
seatunnel: engine: job-schedule-strategy: WAIT
當(dāng)dynamic-slot: ture
時(shí),job-schedule-strategy: WAIT
配置會(huì)失效,將被強(qiáng)制修改為job-schedule-strategy: REJECT
,因?yàn)閯?dòng)態(tài)Slot時(shí)該參數(shù)沒有意義,可以直接提交。
配置網(wǎng)絡(luò)服務(wù)
所有 SeaTunnel Engine 網(wǎng)絡(luò)相關(guān)的配置都在 hazelcast-Master.yaml
和hazelcast-worker.yaml
文件中.
集群名稱
SeaTunnel Engine 節(jié)點(diǎn)使用 cluster-name
來確定另一個(gè)節(jié)點(diǎn)是否與自己在同一集群中。如果兩個(gè)節(jié)點(diǎn)之間的集群名稱不同,SeaTunnel 引擎將拒絕服務(wù)請(qǐng)求。
網(wǎng)絡(luò)
基于 Hazelcast
, 一個(gè) SeaTunnel Engine 集群是由運(yùn)行 SeaTunnel Engine 服務(wù)器的集群成員組成的網(wǎng)絡(luò)。集群成員自動(dòng)加入一起形成集群。這種自動(dòng)加入是通過集群成員使用的各種發(fā)現(xiàn)機(jī)制來相互發(fā)現(xiàn)的。
請(qǐng)注意,集群形成后,集群成員之間的通信始終通過 TCP/IP 進(jìn)行,無論使用的發(fā)現(xiàn)機(jī)制如何。
SeaTunnel Engine 使用以下發(fā)現(xiàn)機(jī)制。
TCP
您可以將 SeaTunnel Engine 配置為完整的 TCP/IP 集群。有關(guān)配置詳細(xì)信息,請(qǐng)參閱 Discovering Members by TCP section
。
在分離集群模式下,Master和Worker服務(wù)使用不同的端口。
Master節(jié)點(diǎn)網(wǎng)絡(luò)配置 hazelcast-Master.yaml
hazelcast: cluster-name: seatunnel network: rest-api: enabled: true endpoint-groups: CLUSTER_WRITE: enabled: true DATA: enabled: true join: tcp-ip: enabled: true member-list: - master-node-1:5801 - master-node-2:5801 - worker-node-1:5802 - worker-node-2:5802 port: auto-increment: false port: 5801 properties: hazelcast.heartbeat.failuredetector.type: phi-accrual hazelcast.heartbeat.interval.seconds: 2 hazelcast.max.no.heartbeat.seconds: 180 hazelcast.heartbeat.phiaccrual.failuredetector.threshold: 10 hazelcast.heartbeat.phiaccrual.failuredetector.sample.size: 200 hazelcast.heartbeat.phiaccrual.failuredetector.min.std.dev.millis: 100
Worker節(jié)點(diǎn)網(wǎng)絡(luò)配置 hazelcast-worker.yaml
hazelcast: cluster-name: seatunnel network: join: tcp-ip: enabled: true member-list: - master-node-1:5801 - master-node-2:5801 - worker-node-1:5802 - worker-node-2:5802 port: auto-increment: false port: 5802 properties: hazelcast.heartbeat.failuredetector.type: phi-accrual hazelcast.heartbeat.interval.seconds: 2 hazelcast.max.no.heartbeat.seconds: 180 hazelcast.heartbeat.phiaccrual.failuredetector.threshold: 10 hazelcast.heartbeat.phiaccrual.failuredetector.sample.size: 200 hazelcast.heartbeat.phiaccrual.failuredetector.min.std.dev.millis: 100
TCP 是我們建議在獨(dú)立 SeaTunnel Engine 集群中使用的方式。
啟動(dòng) SeaTunnel Engine Master 節(jié)點(diǎn)
可以通過守護(hù)進(jìn)程使用 -d 參數(shù)啟動(dòng)。
mkdir -p $SEATUNNEL_HOME/logs ./bin/seatunnel-cluster.sh -d -r master
日志將寫入 $SEATUNNEL_HOME/logs/seatunnel-engine-Master.log
啟動(dòng) SeaTunnel Engine Worker 節(jié)點(diǎn)
可以通過守護(hù)進(jìn)程使用 -d
參數(shù)啟動(dòng)。
mkdir -p $SEATUNNEL_HOME/logs ./bin/seatunnel-cluster.sh -d -r worker
日志將寫入 $SEATUNNEL_HOME/logs/seatunnel-engine-worker.log
安裝 SeaTunnel Engine 客戶端
您可以通過添加 /etc/profile.d/seatunnel.sh
文件來配置 SEATUNNEL_HOME
。/etc/profile.d/seatunnel.sh
的內(nèi)容如下:
export SEATUNNEL_HOME=${seatunnel install path} export PATH=$PATH:$SEATUNNEL_HOME/bin
提交作業(yè)和管理作業(yè) 使用 SeaTunnel Engine 客戶端提交作業(yè)
安裝 SeaTunnel Engine 客戶端
設(shè)置和服務(wù)器一樣的SEATUNNEL_HOME
您可以通過添加 /etc/profile.d/seatunnel.sh
文件來配置 SEATUNNEL_HOME
。
/etc/profile.d/seatunnel.sh
的內(nèi)容如下:
export SEATUNNEL_HOME=${seatunnel install path} export PATH=$PATH:$SEATUNNEL_HOME/bin
配置 SeaTunnel Engine 客戶端
所有 SeaTunnel Engine 客戶端的配置都在 hazelcast-client.yaml
里。
cluster-name
客戶端必須與 SeaTunnel Engine 具有相同的 cluster-name
。
否則,SeaTunnel Engine 將拒絕客戶端的請(qǐng)求。
network
需要將所有 SeaTunnel Engine Master節(jié)點(diǎn)的地址添加到這里。
hazelcast-client: cluster-name: seatunnel properties: hazelcast.logging.type: log4j2 network: cluster-members: - master-node-1:5801 - master-node-2:5801
提交作業(yè)和管理作業(yè)
現(xiàn)在集群部署完成了,您可以通過以下教程完成作業(yè)的提交和管理:
bin/seatunnel.sh --config $SEATUNNEL_HOME/config/v2.batch.config.template
--async參數(shù)可以讓作業(yè)在后臺(tái)運(yùn)行,當(dāng)作業(yè)提交后,客戶端會(huì)退出。
./bin/seatunnel.sh --config $SEATUNNEL_HOME/config/v2.batch.config.template --async
-n或--name參數(shù)可以指定作業(yè)的名稱
./bin/seatunnel.sh --config $SEATUNNEL_HOME/config/v2.batch.config.template --async -n myjob
查看作業(yè)列表
./bin/seatunnel.sh -l
該命令會(huì)輸出所有當(dāng)前集群中的作業(yè)列表(包含運(yùn)行完成的歷史作業(yè)和正在運(yùn)行的作業(yè))
查看作業(yè)狀態(tài)
./bin/seatunnel.sh -j <jobId>
該命令會(huì)輸出指定作業(yè)的狀態(tài)信息
獲取正在運(yùn)行的作業(yè)監(jiān)控信息
./bin/seatunnel.sh --get_running_job_metrics
該命令會(huì)輸出正在運(yùn)行的作業(yè)的監(jiān)控信息
獲取指定作業(yè)監(jiān)控信息
--metrics 參數(shù)可以獲取指定作業(yè)的監(jiān)控信息
./bin/seatunnel.sh --metrics <jobId>
暫停作業(yè)
./bin/seatunnel.sh -s <jobId>
該命令會(huì)暫停指定作業(yè),注意,只有開啟了checkpoint
的作業(yè)才支持暫停作業(yè)(實(shí)時(shí)同步作業(yè)默認(rèn)開啟checkpoint,批處理作業(yè)默認(rèn)不開啟checkpoint需要通過在 env 中配置checkpoint.interval
來開啟checkpoint)。
暫停作業(yè)是以split
為最小單位的,即暫停作業(yè)后,會(huì)等待當(dāng)前正在運(yùn)行的split
運(yùn)行完成后再暫停。
任務(wù)恢復(fù)后,會(huì)從暫停的split
繼續(xù)運(yùn)行。
恢復(fù)作業(yè)
./bin/seatunnel.sh -r <jobId> -c $SEATUNNEL_HOME/config/v2.batch.config.template
該命令會(huì)恢復(fù)指定作業(yè),注意,只有開啟了checkpoint的作業(yè)才支持恢復(fù)作業(yè)(實(shí)時(shí)同步作業(yè)默認(rèn)開啟checkpoint,批處理作業(yè)默認(rèn)不開啟checkpoint需要通過在 env 中配置checkpoint.interval來開啟checkpoint)。
恢復(fù)作業(yè)需要指定jobId和作業(yè)的配置文件。
運(yùn)行失敗的作業(yè)和通過seatunnel.sh -s暫停的作業(yè)都可以通過該命令恢復(fù)。
取消作業(yè)
./bin/seatunnel.sh -can <jobId1> [<jobId2> <jobId3> ...]
該命令會(huì)取消指定作業(yè),取消作業(yè)后,作業(yè)會(huì)被停止,作業(yè)的狀態(tài)會(huì)變?yōu)镃ANCELED。
支持批量取消作業(yè),可以一次取消多個(gè)作業(yè)。
被cancel的作業(yè)的所有斷點(diǎn)信息都將被刪除,無法通過seatunnel.sh -r恢復(fù)。
使用 REST API 提交作業(yè)
SeaTunnel Engine 提供了 REST API
用于提交作業(yè)。
v2版本的API使用jetty
支持,與v1版本的接口規(guī)范相同 ,可以通過修改seatunnel.yaml
中的配置項(xiàng)來指定端口和context-path
,同時(shí)可以配置 enable-dynamic-port
開啟動(dòng)態(tài)端口(默認(rèn)從 port 開始累加),默認(rèn)為關(guān)閉, 如果enable-dynamic-port
為true,將使用port和port+port-range
范圍內(nèi)未使用的端口,默認(rèn)范圍是100。
seatunnel: engine: http: enable-http: true port: 8080 enable-dynamic-port: false port-range: 100
同時(shí)也可以配置context-path,配置如下:
seatunnel: engine: http: enable-http: true port: 8080 context-path: /seatunnel
其他API我已上傳Github請(qǐng)查看自取
【 Github地址:https://github.com/Mrkuhuo/data-warehouse-learning 】
【 Gitee 地址:https://gitee.com/wzylzjtn/data-warehouse-learning 】
到此這篇關(guān)于Apache SeaTunnel 集群部署詳細(xì)教程的文章就介紹到這了,更多相關(guān)Apache SeaTunnel 集群部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux多路轉(zhuǎn)接之select函數(shù)使用方式
這篇文章主要介紹了Linux多路轉(zhuǎn)接之select函數(shù)使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08Linux 使用init命令實(shí)現(xiàn)關(guān)機(jī),重啟,切換模式
這篇文章主要介紹了Linux 使用init命令實(shí)現(xiàn)關(guān)機(jī),重啟,切換模式的相關(guān)資料,需要的朋友可以參考下2017-03-03Linux中如何查看文件的創(chuàng)建時(shí)間詳解
這篇文章主要給大家介紹了關(guān)于Linux中如何查看文件的創(chuàng)建時(shí)間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Linux具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Ubuntu無網(wǎng)絡(luò)標(biāo)識(shí)的問題及解決
這篇文章主要介紹了Ubuntu無網(wǎng)絡(luò)標(biāo)識(shí)的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04Linux nohup實(shí)現(xiàn)后臺(tái)運(yùn)行程序及查看(nohup與&)
這篇文章主要介紹了Linux nohup實(shí)現(xiàn)后臺(tái)運(yùn)行程序及查看(nohup與&),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09