基于Seatunnel最新2.3.5版本分布式集群安装部署指南(小白版)

news2025/1/20 1:37:14

基于Seatunnel2.3.5版本分布式集群安装部署

  • 1.环境准备
  • 2.JDK安装
  • 3.Maven安装
  • 4.Seatunnel在master节点安装部署配置
    • 4.1.下载Seatunnel安装包
    • 4.2.解压下载好的tar.gz包
    • 4.3.下载连接器
    • 4.4.配置Seatunnel的系统环境变量
    • 4.5.配置 SeaTunnel Engine服务 JVM参数
    • 4.6.配置文件中集群相关参数修改
      • 4.6.1.SEATUNNEL配置文件修改
      • 4.6.2.SEATUNNEL Engine服务配置文件修改
      • 4.6.3.SEATUNNEL Engine客户端配置文件修改
  • 5.分布式集群安装部署
    • 5.1.创建日志目录
    • 5.2.添加服务分发集群脚本
    • 5.3.Seatunnel服务分发到集群其他主机
    • 5.4.Seatunnel服务系统环境配置文件分发到集群其他主机
  • 6.基于Spark/flink引擎的Seatunnel集群配置
  • 7.Seatunnel集群常用管理命令
  • 8.Seatunnel集群任务测试验证

1.环境准备

分布式集群基本环境准备,请参考我的另一篇文章dolphinscheduler分布式集群部署指南(小白版)中的环境准备小节进行配置

IP地址主机名角色说明
10.10.3.10hadoop1001master节点
10.10.3.11hadoop1002slave节点
10.10.3.12hadoop1003slave节点
10.10.3.13hadoop1004slave节点
10.10.3.14hadoop1005slave节点

2.JDK安装

这部分跳过,很简单,基本随便找个博客文章照着配置就能搞定。

3.Maven安装

这部分跳过,很简单,基本随便找个博客文章照着配置就能搞定。

也可以不安装, 直接将Seatunnel2.3.5的源码下载到本地, 通过本地的mave把所有需要用到的连接器插件先下载下来再上传到安装目录下的$SEATUNNEL_HOME/lib目录和$SEATUNNEL_HOME/connectors/seatunnel目录下也是可以的, 这样就不需要安装Maven了。

4.Seatunnel在master节点安装部署配置

4.1.下载Seatunnel安装包

Seatunnel安装包下载

下载Seatunnel安装包上传到master节点hadoop1001的/opt/packages目录下

4.2.解压下载好的tar.gz包

tar -zxvf /opt/packages/apache-seatunnel-2.3.5-bin.tar.gz -C /opt/software

(3)查看Seatunnel使用的脚本

进入Seatunnel安装目录

cd /opt/software/apache-seatunnel-2.3.5

在这里插入图片描述

install-plugin.sh                              --安装连接器脚本

seatunnel-cluster.sh                           -–集群模式启动脚本

seatunnel-cluster.sh                           --本地模式启动脚本

start-seatunnel-flink-13-connector-v2.sh       –-flink1.2-1.4版本引擎启动脚本

start-seatunnel-flink-15-connector-v2.sh       –-flink1.5-1.6版本引擎启动脚本

start-seatunnel-spark-2-connector-v2.sh        –-saprk2.x版本引擎启动脚本

start-seatunnel-spark-3-connector-v2.sh        –-saprk3.x版本引擎启动脚本

4.3.下载连接器

这里可以直接将Seatunnel2.3.5的源码下载到本地,
修改install-plugin.cmd脚本,通过调用本地的mave把所有需要用到的连接器插件先下载下来再上传到安装目录下的$SEATUNNEL_HOME/lib目录和$SEATUNNEL_HOME/connectors/seatunnel目录下也可以

进入Seatunnel安装目录

cd /opt/software/apache-seatunnel-2.3.5

修改install-plugin.sh脚本, 切换成本地自定义安装的maven进行插件下载安装。
在这里插入图片描述
注意,如果你需要使用这种方式需要保证你的本地已经安装了apache-maven(>=3.6.3),并且已经给maven配置了系统环境变量。

下载完成之后将/opt/software/seatunnel-2.3.5/connectors下的所有的jar包都拷贝到·/opt/software/seatunnel-2.3.5/connectors/seatunnel目录下以及/opt/software/seatunnel-2.3.5/lib目录下

mkdir -p  /opt/software/apache-seatunnel-2.3.5/connectors/seatunnel/

cp /opt/software/apache-seatunnel-2.3.5/connectors/*.jar /opt/software/apache-seatunnel-2.3.5/connectors/seatunnel/

cp /opt/software/apache-seatunnel-2.3.5/connectors/seatunnel/* /opt/software/seatunnel-2.3.5/lib/

操作完成结果如下:
/opt/software/apache-seatunnel-2.3.5/connectors/seatunnel/目录下如下图:
在这里插入图片描述
/opt/software/seatunnel-2.3.5/lib/目录下如下图:
在这里插入图片描述

4.4.配置Seatunnel的系统环境变量

  • 编辑/etc/profile.d/seatunnel.sh

vim /etc/profile.d/seatunnel.sh

  • 在文件中添加以下内容配置环境变量
export SEATUNNEL_HOME=/opt/software/apache-seatunnel-2.3.5
export PATH=$PATH:$SEATUNNEL_HOME/bin

wq!保存退出, 一定要保存退出。

  • 系统环境变量立即生效
source /etc/profile 
  • 验证系统环境变量是否生效
echo $SEATUNNEL_HOME 

命令行输出如下,说明配置成功
在这里插入图片描述

4.5.配置 SeaTunnel Engine服务 JVM参数

将 JVM 参数选项添加到$SEATUNNEL_HOME/bin/seatunnel-cluster.sh文件的开头

JAVA_OPTS="-Xms2G -Xmx2G"

在这里插入图片描述

4.6.配置文件中集群相关参数修改

主要针对``$SEATUNNEL_HOME/config/`以下三个文件进行修改
在这里插入图片描述
修改具体说明一下每个文件都要修改的配置项

现在seatunnel的官方已经出了中文版本的文档, 如果觉得我写的很乱,或者有问题,可以直接查看官方文档 Apache Seatunnel官网中文文档传送门

4.6.1.SEATUNNEL配置文件修改

SEATUNNEL配置$SEATUNNEL_HOME/config/seatunnel.yaml文件
因为我这里已经按照了hadoop的集群, 可以直接使用HDFS api 读写文件,存储直接使用默认的HDFS,当然你也可以使用其他的存储类型,具体的参数配置可以参考官网说明。
在这里插入图片描述
修改参数如下:

seatunnel:
  engine:
    history-job-expire-minutes: 1440
    backup-count: 1
    queue-type: blockingqueue
    print-execution-info-interval: 60
    print-job-metrics-info-interval: 60
    slot-service:
      dynamic-slot: true
    checkpoint:
      interval: 10000
      timeout: 60000
      storage:
        type: hdfs
        max-retained: 3
        plugin-config:
          namespace: /tmp/seatunnel/checkpoint_snapshot
          storage.type: hdfs
          # 主要就是修改了hdfs的URI,其它参数使用了系统默认参数
          fs.defaultFS: hdfs://hadoop1001:8020

4.6.2.SEATUNNEL Engine服务配置文件修改

SEATUNNEL Engine配置$SEATUNNEL_HOME/config/hazelcast.yaml文件

具体的配置项的解释说明请查看 配置 SeaTunnel Engine 服务

hazelcast:
  # seatunnel集群的名称, 这这个集群名称需要和SEATUNNEL Engine客户端配置文件中集群名称保持一致
  cluster-name: st-etl
  network:
    rest-api:
      enabled: true
      endpoint-groups:
        CLUSTER_WRITE:
          enabled: true
        DATA:
          enabled: true
    join:
      tcp-ip:
        enabled: true
        # 需要部署Seatunnel集群的主机列表
        member-list:
          - hadoop1001
          - hadoop1002
          - hadoop1003
          - hadoop1004
          - hadoop1005
    port:
      auto-increment: false
      # 默认的端口是5801,需要确认这个端口未被系统占用
      port: 5801
  properties:
    hazelcast.invocation.max.retry.count: 20
    hazelcast.tcp.join.port.try.count: 30
    hazelcast.logging.type: log4j2
    hazelcast.operation.generic.thread.count: 50

4.6.3.SEATUNNEL Engine客户端配置文件修改

SEATUNNEL Engine配置$SEATUNNEL_HOME/config/hazelcast-client.yaml文件

具体的配置项的解释说明请查看 配置 SeaTunnel Engine 客户端

hazelcast-client:
  # seatunnel集群的名称, 这这个集群名称需要和SEATUNNEL Engine服务配置文件中集群名称保持一致
  cluster-name: st-etl
  properties:
    hazelcast.logging.type: log4j2
  connection-strategy:
    connection-retry:
      cluster-connect-timeout-millis: 3000
  network:
    # SEATUNNEL Engine服务列表
    cluster-members:
      - hadoop1001:5801
      - hadoop1002:5801
      - hadoop1003:5801
      - hadoop1004:5801
      - hadoop1005:5801

通过以上操作, 单台机器上的seatunnel服务就安装配置完成了。现在我们进行分布式集群部署。

5.分布式集群安装部署

5.1.创建日志目录

我们提前在seatunnel的安装目录下创建一个日志目录,后续seatunnel集群启动之后日志文件会保存再改目录下,在seatunnel服务分发到其他节点之前,先进行该操作。

mkdir -p /opt/software/apache-seatunnel-2.3.5/logs

在这里插入图片描述

5.2.添加服务分发集群脚本

这个脚本可以生效需要满足以下三点:

  • 需要分发服务的每台主机上都已经安装了rsync服务
  • 集群的域名都已经进行映射
  • 脚本执行的主机上已经设置了SSH免密登录其他节点

hadoop1001主机上添加集群服务分发脚本,直接添加到/usr/bin目录(免得还需要配合子系统环境变量)

vim /usr/bin/data_rsync

脚本内容如下:

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环()
for((host=2; host<=5; host++)); do
        echo ------------------- hadoop$host --------------
        rsync -av $pdir/$fname $user@hadoop100$host:$pdir
done

配置脚本的执行权限

chmod 777 /usr/bin/data_rsync

5.3.Seatunnel服务分发到集群其他主机

执行以下命令完成服务分发

data_rsync /opt/software/seatunnel-2.3.5

如下图说明同步分发完成
在这里插入图片描述
检查hadoop1001~1005的主机上/opt/software/目录下是否成功同步了seatunnel-2.3.5安装包

5.4.Seatunnel服务系统环境配置文件分发到集群其他主机

执行以下命令完成服务分发

data_rsync /etc/profile.d/seatunnel.sh

在这里插入图片描述在这里插入图片描述
分发完成之后, 登录依次ssh登录到每台服务(hadoop1001~hadoop1004)上,让Seatunnel的系统环境变量立即生效。

  • 系统环境变量立即生效
source /etc/profile 
  • 验证系统环境变量是否生效
echo $SEATUNNEL_HOME 

命令行输出如下,说明配置成功
在这里插入图片描述
通过以上操作,我们的Seatunnel分布式集群基本就安装完毕了,下面我们继续完成spark引擎和flink引擎配置。

6.基于Spark/flink引擎的Seatunnel集群配置

首先需要部署spark和Flink集群, 这个应该也挺简单了,不会可以自行百度, 实在搞不定私信留言我再输出一个spark和Flink集群安装部署的文章。

我这里已经安装部署了spark和Flink集群, 所以不需要再进行spark集群的部署配置了,这里直接说明如何完成基于spark/Flink引擎的Seatunnel集群配置。

其他这个也很简单, 我们只需要修改seatunnel的环境配置脚本即可,将里面的spark的安装目录路径修改成我们本地的spark安装目录即可

vim $SEATUNNEL_HOME/config/seatunnel-env.sh

在这里插入图片描述
脚本内容如下:

#设置spark分布式集群的安装目录
SPARK_HOME=${SPARK_HOME:-/opt/software/spark}
#设置flink分布式集群的安装目录
FLINK_HOME=${FLINK_HOME:-/opt/software/flink}

保存退出。

然后将这个配置文件的修改同步到集群其他主机

data_rsync /opt/software/seatunnel-2.3.5/config/seatunnel-env.sh

重启Seatunnel集群即可。

7.Seatunnel集群常用管理命令

  • 1)启动集群(需要在集群每台节点上都执行)
nohup $SEATUNNEL_HOME/bin/seatunnel-cluster.sh 2>&1 &
  • 2)停止集群(需要在集群每台节点上都执行)
$SEATUNNEL_HOME/bin/stop-seatunnel-cluster.sh

3)默认引擎任务提交命令


$SEATUNNEL_HOME/bin/seatunnel.sh --config /opt/software/seatunnel-2.3.5/config/app-config/v2.batch.config.template

4)spark2.X版本引擎任务提交命令

$SEATUNNEL_HOME/bin/start-seatunnel-spark-2-connector-v2.sh --master local[4] --deploy-mode client --config /opt/software/seatunnel-2.3.5/config/app-config/v2.batch.config.template

5)spark3.X版本引擎任务提交命令


$SEATUNNEL_HOME/bin/start-seatunnel-spark-3-connector-v2.sh --master local[4] --deploy-mode client --config /opt/software/seatunnel-2.3.5/config/app-config/v2.batch.config.template

6)flink低版本引擎任务提交命令(Flink版本1.12.x到1.14.x)

$SEATUNNEL_HOME/bin/start-seatunnel-flink-13-connector-v2.sh --config /opt/software/seatunnel-2.3.5/config/app-config/v2.streaming.conf.template

7)flink高版本引擎任务提交命令(Flink版本1.15.x到1.16.x)

$SEATUNNEL_HOME/bin/start-seatunnel-flink-15-connector-v2.sh --config /opt/software/seatunnel-2.3.5/config/app-config/v2.streaming.conf.template

8.Seatunnel集群任务测试验证

在hadoop1001上执行基于spark引擎的任务提交进行测试验证, 验证之前需要保证集群服务正常启动

ps -ef|grep seatunnel

如下图,说明集群正常启动
在这里插入图片描述
提交测试任务

$SEATUNNEL_HOME/bin/start-seatunnel-spark-2-connector-v2.sh --master local[4] --deploy-mode client --config /opt/software/seatunnel-2.3.5/config/app-config/v2.batch.config.template

任务处理过程打印如下日志,说明集群配置正常,就可以创建其他数据处理的任务。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过以上部署及验证,Seatunnel集群已经全部安装配置好了, 用起来吧。后续计划把Seatunnel结合Dolphinscheduler任务调度在实际业务中的使用再输出一篇文章。

如果觉得文章写的还不错,喜欢的童鞋们请点赞收藏,送你一送小红花哈。~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1801744.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阅读笔记——《AFLNET: A Greybox Fuzzer for Network Protocols》

【参考文献】Pham V T, Bhme M, Roychoudhury A. Aflnet: a greybox fuzzer for network protocols[C]//2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST). IEEE, 2020: 460-465.【注】本文仅为作者个人学习笔记&#xff0c;…

socket通信(C语言+Python)

在socket文件夹下创建server.c和client.c。 服务端代码&#xff08;server.c&#xff09;&#xff1a; #include <stdio.h> #include <Winsock2.h> void main() {WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested MAKEWORD( 1, 1 );err WSAS…

单片机原理及技术(三)—— AT89S51单片机(二)(C51编程)

一、AT89S51单片机的并行I/O端口 1.1 P0口 AT89S51的P0口是一个通用的I/O口&#xff0c;可以用于输入和输出。每个引脚都可以通过软件控制为输入或输出模式。 1.1.1 P0口的工作原理 P0口的工作原理是通过对P0寄存器的读写操作来控制P0口的引脚。 输出模式&#xff1a;当P0口…

从大到小吗?-分支c++

题目描述 给出 4 个整数&#xff0c;a , b , c , d 。 判断这四个数字是否满足从大到小。 输入 输入 4 个整数&#xff0c;a , b , c , d 。 输出 输出 Yes 或者 No 。 样例输入 4 3 2 1 样例输出 Yes 提示 分析&#xff1a; 这道题十分的简单&#xff0c;只需判断…

技术管理之巅—如何从零打造高质效互联网技术团队阅读体验

技术管理之巅—如何从零打造高质效互联网技术团队 《技术管理之巅&#xff1a;如何从零打造高质效互联网技术团队》是黄哲铿所著的一本书&#xff0c;致力于帮助技术管理者从零开始打造高效的互联网技术团队。该书分为多个章节&#xff0c;分别探讨了从团队文化建设到技术架构…

【Redis】 Redis 集成到 Spring Boot上面

文章目录 &#x1f343;前言&#x1f384;Spring Boot连接redis客户端&#x1f6a9;项目的创建&#x1f6a9;配置端⼝转发&#x1f6a9;配置 redis 服务地址&#x1f6a9;更改 Redis 配置文件&#x1f6a9;使用 StringRedisTemplate 类操作 &#x1f38d;Spring Boot操作Redis客…

SAP HCM HR_PAD_HIRE_EMPLOYEE 自定义信息类型字段保存问题

导读 INTRODUCTION SAP HCM入职程序&#xff1a;SAP HCM入职程序有两个一个是HR_PAD_HIRE_EMPLOYEE一个是HR_MAINTAIN_MASTERDATA&#xff0c;前面的函数是SAP为新框架开发的&#xff0c;后面函数是旧的逻辑&#xff0c;这两个函数的在于底层的结构不一致&#xff0c;对于自定…

应用matplotlib.animation.FuncAnimation绘制摆线

上次尝试了用matplotlib.animation.ArtistAnimation绘制摆线&#xff0c;实际上也可以用matplotlib.animation.FuncAnimation实现同样的功能。 导入相关文件 引用的库包括numpy&#xff0c;matplotlib&#xff0c;代码如下&#xff1a; import numpy as np import matplotli…

【启程Golang之旅】让文件操作变得简单

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…

Spring Boot集成pmd插件快速入门Demo

1.什么是pmd插件&#xff1f; PMD 插件允许您在项目的源代码上自动运行PMD代码分析工具&#xff0c;并生成带有其结果的站点报告。它还支持与 PMD 一起分发的单独的复制/粘贴检测器工具&#xff08;或 CPD&#xff09;。 此版本的 Maven PMD 插件使用 PMD 6.42.0 并且需要 Jav…

新增FTP功能、支持添加Redis远程数据库,专业版新增网站监控和黑金主题,1Panel开源面板v1.10.10版本发布

2024年6月7日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel发布v1.10.10版本。 在这一版本中&#xff0c;1Panel新增了多项实用功能。社区版方面&#xff0c;新增了FTP功能、支持添加Redis远程数据库、支持设置压缩密码&#xff0c;并新增了清理镜像构建缓存的功能…

从 Android 恢复已删除的备份录

本文介绍了几种在 Android 上恢复丢失和删除的短信的方法。这些方法都不能保证一定成功&#xff0c;但您可能能够恢复一些短信或其中存储的文件。 首先要尝试什么 首先&#xff0c;尝试保留数据。如果你刚刚删除了信息&#xff0c;请立即将手机置于飞行模式&#xff0c;方法是…

若依原生框架集成mybatisplus

1、进入父级依赖 将这个阿里数据库连接池druid注释掉&#xff0c;然后将pagehelper排除jsqlparser分页&#xff0c;使用mybatisplus分页查询防止mybatisplus与pagehelper版本不匹配&#xff0c;不然会报错 2、进入disease-framework模块&#xff1a; config的下面DruidConf…

【Python报错】已解决TypeError: can only concatenate str (not “int“) to str

解决Python报错&#xff1a;TypeError: can only concatenate str (not “int”) to str 在Python中&#xff0c;字符串连接是常见的操作&#xff0c;但如果你尝试将整数&#xff08;int&#xff09;与字符串&#xff08;str&#xff09;直接连接&#xff0c;会遇到TypeError: …

(函数)判断一句话中最长的单词(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//声明函数&#xff1b; int aiphabetic(char); int longest(char[]);int main() {//初始化变量值&#xff1b;int i;char line[100] { 0 };//获取用户输入字符…

【吊打面试官系列】CHAR 和 VARCHAR 的区别?

大家好&#xff0c;我是锋哥。今天分享关于 【CHAR 和 VARCHAR 的区别&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; CHAR 和 VARCHAR 的区别&#xff1f; 1、CHAR 和 VARCHAR 类型在存储和检索方面有所不同 1000道 互联网大厂Java工程师 精选面试题-Java资源…

什么是Docker ?

在软件开发的星辰大海中&#xff0c;有一个神奇的技术&#xff0c;它能够将应用程序及其依赖环境封装在一个轻量级的、可移植的容器中。这项技术就是Docker。它不仅简化了应用的部署流程&#xff0c;还让开发和运维之间的界限变得模糊&#xff0c;使得跨平台部署变得前所未有的…

云原生架构:构建高可用、可伸缩的互联网应用

随着互联网技术的不断发展&#xff0c;云原生架构已经成为构建高可用、可伸缩的互联网应用的最佳实践之一。云原生架构是一种以云计算为基础的应用架构&#xff0c;旨在充分利用云平台的优势&#xff0c;实现应用的高可用性、灵活性和可扩展性。本文将介绍云原生架构的关键概念…

PAT-1009 说反话(java实现)

还是这种题好&#xff0c;多简单啊&#xff0c;题目多清晰明了啊&#xff0c;多让人增加学习的热情啊。 题目 给定一句英语&#xff0c;要求你编写程序&#xff0c;将句中所有单词的顺序颠倒输出。 输入格式&#xff1a; 测试输入包含一个测试用例&#xff0c;在一行内给出总长…

【十大排序算法】插入排序

插入排序&#xff0c;如一位细心的整理者&#xff0c; 她从序列的左端开始&#xff0c; 挨个将元素归位。 每当她遇到一个无序的元素&#xff0c; 便将它插入已经有序的部分&#xff0c; 直至所有元素有序排列。 她不张扬&#xff0c;却有效率&#xff0c; 用自己的方式&…