作者 | 月影幽篁
在當前資料驅動的業務環境中,快速且高效的資料處理能力至關重要。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
本文由 白鯨開源 提供釋出支援!