作者 | 月影幽篁 在當前數據驅動的業務環境中,快速且高效的數據處理能力至關重要。Apache SeaTunnel以其卓越的性能和靈活性,成為數據工程師和開發者的首選工具之一。本文將介紹如何在集群環境中搭建Apache SeaTunnel 2.3.5版本的 Zeta-Server,並概述其使用方法。 ...
作者 | 月影幽篁
在當前數據驅動的業務環境中,快速且高效的數據處理能力至關重要。Apache SeaTunnel以其卓越的性能和靈活性,成為數據工程師和開發者的首選工具之一。本文將介紹如何在集群環境中搭建Apache SeaTunnel 2.3.5版本的 Zeta-Server,並概述其使用方法。
SeaTunnel二進位包下載
下載地址:https://seatunnel.apache.org/zh-CN/download
SeaTunnel環境變數配置
編輯/etc/profile文件,添加如下配置:
export SEATUNNEL_HOME=${seatunnel install path}
export PATH=$PATH:$SEATUNNEL_HOME/bin
SeaTunnel Zeta Server配置
JVM配置
SeaTunnel Zeta Server的jvm配置文件路徑為${SEATUNNEL_HOME}/config/jvm_options
,可以在這裡調整JVM相關配置。
引擎配置
一定要編輯的幾個配置:
-
cluster-name
SeaTunnel Engine 節點使用 cluster-name 來確定另一個節點是否與自己在同一集群中。如果兩個節點之間的集群名稱不同,SeaTunnel 引擎將拒絕服務請求。 -
網路
基於 Hazelcast, 一個 SeaTunnel Engine 集群是由運行 SeaTunnel Engine 伺服器的集群成員組成的網路。 集群成員自動加入一起形成集群。這種自動加入是通過集群成員使用的各種發現機制來相互發現的。
請註意,集群形成後,集群成員之間的通信始終通過 TCP/IP 進行,無論使用的發現機制如何。
示例:
hazelcast:
cluster-name: seatunnel
network:
join:
tcp-ip:
enabled: true
member-list:
- hostname1
port:
auto-increment: false
port: 5801
properties:
hazelcast.logging.type: log4j2
- 類載入器緩存模式(classloader-cache-mode)
此配置主要解決不斷創建和嘗試銷毀類載入器所導致的資源泄漏問題。 如果您遇到與元空間溢出相關的異常,您可以嘗試啟用此配置。 為了減少創建類載入器的頻率,在啟用此配置後,SeaTunnel 在作業完成時不會嘗試釋放相應的類載入器,以便它可以被後續作業使用,也就是說,當運行作業中使用的 Source/Sink 連接器類型不是太多時,它更有效。 預設值是 false。示例:
seatunnel:
engine:
classloader-cache-mode: true
- 歷史作業過期配置(history-job-expire-minutes)
每個完成的作業的信息,如狀態、計數器和錯誤日誌,都存儲在 IMap 對象中。隨著運行作業數量的增加,記憶體會增加,最終記憶體將溢出。因此,您可以調整 history-job-expire-minutes 參數來解決這個問題。此參數的時間單位是分鐘。預設值是 1440 分鐘,即一天。示例:
seatunnel:
engine:
history-job-expire-minutes: 1440
更多配置可以參考官方文檔:https://seatunnel.apache.org/zh-CN/docs/2.3.5/seatunnel-engine/deployment#4-配置-seatunnel-engine
Client配置
JVM配置
SeaTunnel Client的jvm配置文件路徑為${SEATUNNEL_HOME}/config/jvm_client_options
,可以在這裡調整JVM相關配置,在使用bin/seatunnel.sh --config xxx.conf
提交任務時會啟動一個java進程,可以使用此配置來控制java進程參數。
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# JVM Heap
-Xms1g
-Xmx1g
# JVM Dump
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/icarbon_saas/bigdata/seatunnel/dump/zeta-client
引擎客戶端配置
引擎客戶端配置文件路徑為:${SEATUNNEL_HOME}/config/hazelcast-client.yaml
-
cluster-name
客戶端必須與 SeaTunnel Engine 具有相同的 cluster-name。否則,SeaTunnel Engine 將拒絕客戶端的請求。 -
cluster-members
需要將所有 SeaTunnel Engine 伺服器節點的地址添加到這裡。示例:
hazelcast-client:
cluster-name: seatunnel
properties:
hazelcast.logging.type: log4j2
network:
cluster-members:
- hostname1:5801
啟動Seatunnel Engine
${SEATUNNEL_HOME}/bin/seatunnel-cluster.sh -d
本文由 白鯨開源 提供發佈支持!