SeaTunnel Engine 的Master
服务和Worker
服务分离,每个服务单独一个进程。
- Master节点只负责作业调度,RESTful API,任务提交等,Imap数据只存储在Master节点中。
- Worker节点只负责任务的执行,不参与选举成为Master,也不存储Imap数据。
在所有Master
节点中,同一时间只有一个Master
节点工作,其他Master
节点处于standby
状态。
当Master
节点宕机或心跳超时,会从其它节点中选举出一个新的Master Active
节点。
这是最推荐的一种使用方式,在该模式下Master的负载会很小,Master
有更多的资源用来进行作业的调度,任务的容错指标监控以及提供Rest API
服务等,会有更高的稳定性。
同时Worker
节点不存储Imap
的数据,所有的Imap
数据都存储在Master
节点中,即使Worker
节点负载高或者挂掉,也不会导致Imap
数据重新分布。
下载安装包
在开始下载SeaTunnel之前,您需要确保您已经安装了SeaTunnel所需要的以下软件:
安装Java (Java 8 或 11, 其他高于Java 8的版本理论上也可以工作) 以及设置
JAVA_HOME
。
进入SeaTunnel下载页面(https://seatunnel.apache.org/download)下载最新版本的发布版安装包`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
的内容如下:
export SEATUNNEL_HOME=${seatunnel install path}
export PATH=$PATH:$SEATUNNEL_HOME/bin
配置 Master 节点 JVM 选项
Master节点的JVM参数在$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节点的JVM参数在$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
中进行配置。
Imap中数据的备份数设置(该参数在Worker节点无效)
SeaTunnel Engine 基于 Hazelcast IMDG
实现集群管理。集群的状态数据(作业运行状态、资源状态)存储在 Hazelcast IMap
。
存储在 Hazelcast IMap
中的数据将在集群的所有节点上分布和存储。
Hazelcast
会分区存储在 Imap
中的数据。每个分区可以指定备份数量。因此,SeaTunnel Engine 可以实现集群 HA,无需使用其他服务(例如 zookeeper)。
backup count
是定义同步备份数量的参数。例如,如果设置为 1,则分区的备份将放置在一个其他成员上。如果设置为 2,则将放置在两个其他成员上。
我们建议 backup-count
的值为 min(1, max(5, N/2))。N 是集群节点的数量。
seatunnel:
engine:
backup-count: 1
# 其他配置
由于在分离集群模式下,Worker节点不存储Imap数据,因此Worker节点的
backup-count
配置无效。
如果Master和Worker进程在同一个机器上启动,Master和Worker会共用