SeaTunnel 实战: Apache SeaTunnel 安装与部署

文章目录

  • 一、准备工作
    • [1.1 环境](#1.1 环境)
    • [1.2 下载](#1.2 下载)
  • 二、SeaTunnel安装
    • [2.1 解压安装包](#2.1 解压安装包)
    • 2.2.配置环境变量
    • 2.3.配置立刻生效
    • [2.4 下载SeaTunnel相关jar包](#2.4 下载SeaTunnel相关jar包)
    • [2.5 测试验证](#2.5 测试验证)
    • [2.6 启动服务](#2.6 启动服务)
  • [三、SeaTunnel Web 1.0.1安装](#三、SeaTunnel Web 1.0.1安装)
    • [3.1 将下载的压缩包解压缩到指定目录下](#3.1 将下载的压缩包解压缩到指定目录下)
    • [3.2 设置 SeaTunnel Web 环境变量](#3.2 设置 SeaTunnel Web 环境变量)
    • [3.3 初始化数据库](#3.3 初始化数据库)
    • [3.4 修改端口与数据源](#3.4 修改端口与数据源)
    • [3.5 修改secretKey(很重要)](#3.5 修改secretKey(很重要))
    • [3.6 配置引擎服务信息](#3.6 配置引擎服务信息)
    • [3.7 下载配置数据源JAR包](#3.7 下载配置数据源JAR包)
    • [3.9 上传到Seatunnel-Web项目的libs目录](#3.9 上传到Seatunnel-Web项目的libs目录)
    • [3.8 配置元数据MySQL的驱动JAR包](#3.8 配置元数据MySQL的驱动JAR包)
    • [3.9 上传到Seatunnel引擎服务的lib目录](#3.9 上传到Seatunnel引擎服务的lib目录)
    • [3.10 启动WEB服务](#3.10 启动WEB服务)
  • 四、排错过程

提示:本次安装 SeaTunnel及SeaTunnel Web均在一台服务器上部署,集群部署本篇文章步骤可能并不适合。

一、准备工作

1.1 环境

类目 要求(基础环境安装请自行百度)
操作系统 CentOS 7.6.18_x86_64 内核 3.10.0-1160.el7.x86_64
Java Java 8 或 11, 其他高于Java 8的版本理论上也可以工作, 以及设置 JAVA_HOME
Maven 版本>= 3.6.3
数据库 Mysql 8.x

1.2 下载

进入 SeaTunnel 下载页面 下载最新版本的发布版安装包

目前 SeaTunnel 最新版本为 2.3.6 版本。

目前 SeaTunnel Web最新版本为 1.0.1 版本。

所下载的安装包如下:

二、SeaTunnel安装

2.1 解压安装包

powershell 复制代码
tar -xvf apache-seatunnel-2.3.6-bin.tar.gz

2.2.配置环境变量

powershell 复制代码
export SEATUNNEL_HOME=/seatunnel/apache-seatunnel-2.3.6
export PATH=$SEATUNNEL_HOME/bin:$PATH

2.3.配置立刻生效

powershell 复制代码
source /etc/profile

2.4 下载SeaTunnel相关jar包

安装SeaTunnel过程中,解压文件后官方默认提供的connector的jar包只有2个,如下图所示:

要想连接Mysql,Oracle,SqlServer,Hive,Kafka,Clickhouse,Doris等时,还需下载对应的jar包。

SeaTunnel下载connector的jar时,使用mvnw来下载jar包,默认是从https://repo.maven.apache.org 下载,速度有点慢,确实是有点慢,好处是不用再一个个拷贝Jar包,所以我还是建议用这种方式进行下载。

如果改用maven下载,依赖包会进入maven的仓库,并不会进入SeaTunnel配置的目录下,如果非要这么做,Jar包下载结束后,可以去maven仓库中,一个个拷贝进来。

改为maven下载,只需要对配置文件做一点修改,具体见截图中的文字部分。

系统默认自动下载时会下载 plugin_config 文件中的所有连接器,路径如下:

powershell 复制代码
/seatunnel/apache-seatunnel-2.3.6/config/plugin_config

如果暂时不需要这么多依赖, 可以在执行下载脚本之前先在 plugin_config 配置中注释掉不需要的连接器。

powershell 复制代码
--connectors-v2--
connector-amazondynamodb
connector-assert
connector-cassandra
connector-cdc-mysql
connector-cdc-mongodb
connector-cdc-sqlserver
connector-cdc-postgres
connector-cdc-oracle
connector-clickhouse
connector-datahub
connector-dingtalk
connector-doris
connector-elasticsearch
connector-email
connector-file-ftp
connector-file-hadoop
connector-file-local
connector-file-oss
connector-file-jindo-oss
connector-file-s3
connector-file-sftp
connector-file-obs
connector-google-sheets
connector-google-firestore
connector-hive
connector-http-base
connector-http-feishu
connector-http-gitlab
connector-http-github
connector-http-jira
connector-http-klaviyo
connector-http-lemlist
connector-http-myhours
connector-http-notion
connector-http-onesignal
connector-http-wechat
connector-hudi
connector-iceberg
connector-influxdb
connector-iotdb
connector-jdbc
connector-kafka
connector-kudu
connector-maxcompute
connector-mongodb
connector-neo4j
connector-openmldb
connector-pulsar
connector-rabbitmq
connector-redis
connector-druid
connector-s3-redshift
connector-sentry
connector-slack
connector-socket
connector-starrocks
connector-tablestore
connector-selectdb-cloud
connector-hbase
connector-amazonsqs
connector-easysearch
connector-paimon
connector-rocketmq
connector-tdengine
connector-web3j
connector-milvus

可以看到 2.3.6版本支持的连接器比2.3.5版本多了很多,Apache出品,必属精品。

执行下载命令

powershell 复制代码
/seatunnel/apache-seatunnel-2.3.6/bin/install-plugin.sh

下载过程耗时比较长,可以去划个水先,耐心等待即可

执行完毕之后,会有类似于下图的结果显示页。

自动下载完成之后, 将 /seatunnel/apache-seatunnel-2.3.6/connectors

下所有的jar包都拷贝到 /seatunnel/apache-seatunnel-2.3.6/lib 目录下

2.5 测试验证

powershell 复制代码
#进入SeaTunnel bin目录 启动服务
./seatunnel.sh --config  ../config/v2.batch.config.template -e local

看到如下页面,证明配置没有问题,就可以启动 Seatunnel 服务了。

2.6 启动服务

powershell 复制代码
#进入SeaTunnel bin目录 启动服务
nohup sh seatunnel-cluster.sh 2>&1 &

在seatunnel的安装目录下查看日志

powershell 复制代码
tail -100f logs/seatunnel-engine-server.log

看到如下所示页面,即标识启动成功。

三、SeaTunnel Web 1.0.1安装

3.1 将下载的压缩包解压缩到指定目录下

powershell 复制代码
tar -xvf apache-seatunnel-web-1.0.1-bin.tar.gz

重命名下

powershell 复制代码
mv apache-seatunnel-web-1.0.1-bin apache-seatunnel-web-1.0.1

3.2 设置 SeaTunnel Web 环境变量

powershell 复制代码
export SEATUNNEL_WEB_HOME=/seatunnel/apache-seatunnel-web-1.0.1
export PATH=${SEATUNNEL_WEB_HOME}/bin:$PATH

3.3 初始化数据库

数据库脚本路径

powershell 复制代码
/seatunnel/apache-seatunnel-web-1.0.1/script

这里我直接选择跳过 init_sql.sh 初始化数据库的脚本,直接navicat 执行 seatunnel_server_mysql.sql。

执行成功,会创建seatunnel的数据库,及数据表的导入。

3.4 修改端口与数据源

配置文件 application.yml 路径

powershell 复制代码
/seatunnel/apache-seatunnel-web-1.0.1/conf


3.5 修改secretKey(很重要)

我专门写了代码,生成这个secretKey,直接也附上吧。

xml 复制代码
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-api</artifactId>
            <version>0.11.2</version>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-impl</artifactId>
            <version>0.11.2</version>
        </dependency>
java 复制代码
    public static void main(String[] args) {
        SecretKey secretKey = Keys.secretKeyFor(SignatureAlgorithm.HS256);
        String key =  Base64.getEncoder().encodeToString(secretKey.getEncoded());
        System.out.println(key);
    }

生成的key,填写到 secretKey 的位置。

3.6 配置引擎服务信息

复制引擎服务中配置文件到 Web 配置目录下面。将 hazelcast-client 配置文件拷贝到 Web 的 conf 目录下:

powershell 复制代码
/seatunnel/apache-seatunnel-2.3.6/config

将插件配置文件拷贝到 Web 的 conf 目录下:

powershell 复制代码
/seatunnel/apache-seatunnel-2.3.6/connectors

全部拷贝至Web 的 conf 目录下:

powershell 复制代码
/seatunnel/apache-seatunnel-web-1.0.1/conf

3.7 下载配置数据源JAR包

download_datasource.sh 数据源脚本在

根据你的需要选择需要下载的数据源,如果不下载在 Web 中配置数据源时会提示没有可用的数据源,记得修改版本号为1.0.1 ,这个我估计是版本更新留下的bug,默认是1.0.0。

修改为用maven进行下载。

执行脚本 download_datasource.sh,在下面的路径下

powershell 复制代码
/seatunnel/apache-seatunnel-web-1.0.1/bin
powershell 复制代码
./download_datasource.sh

执行完成,会看到下面的显示。

采用这种方式下载的,数据源包还是会先进到 maven 仓库里面,然后再一个个拷贝进来。

3.9 上传到Seatunnel-Web项目的libs目录

将以上所有jar包复制到 /seatunnel/apache-seatunnel-web-1.0.1/libs 目录下

3.8 配置元数据MySQL的驱动JAR包

MySQL的驱动包 mysql-connector-java-8.0.30.jar 自行下载,copy到/seatunnel/apache-seatunnel-web-1.0.1/libs 目录下。

3.9 上传到Seatunnel引擎服务的lib目录

将 mysql-connector-java-8.0.30.jar 包复制到/seatunnel/apache-seatunnel-2.3.6/lib下

3.10 启动WEB服务

启动服务必须要保证服务可以访问到ui目录下的index.html文件才可以,因为项目启动前端的项目路径默认添加了/ui的前缀,所以后端项目的启动路径必须在ui目录的父级目录才可以,所以这里需要再web服务的安装目录下执行启动脚本。

我这里的安装目录是/seatunnel/apache-seatunnel-web-1.0.1,所以我这里直接切换到该目录下,执行以下启动命令:

powershell 复制代码
#进入web服务的安装目录
cd /seatunnel/apache-seatunnel-web-1.0.1
#执行启动脚本
sh bin/seatunnel-backend-daemon.sh start

访问http://主机IP:8801(此端口为conf/application.yml中配置的端口), 页面自动跳转到http://主机IP:8801/ui,

默认登录的用户名和密码:

markup 复制代码
username: admin
password: admin

浏览器访问图示地址,看到如下界面,基本启动就成功了。

四、排错过程

章节先放这里,本次部署基本一次就成功了,之前部署2.3.5版本,确实踩了很多坑,部署2.3.6竟然一次就过了,后续使用中有问题,再更新吧,基本无坑,有问题欢迎留言。

相关推荐
檀越剑指大厂15 小时前
开源多场景问答社区论坛Apache Answer本地部署并发布至公网使用
开源·apache
nvd1116 小时前
Java ETL - Apache Beam 简介
java·apache·etl
兮动人2 天前
错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
分布式·zookeeper·apache
凌晨五点的星2 天前
网络安全-利用 Apache Mod CGI
apache
一 乐4 天前
学习平台|基于java的移动学习平台系统小程序(源码+数据库+文档)
java·数据库·学习·小程序·论文·apache
weixin_436525074 天前
【安全漏洞】Apache Tomcat 高危漏洞版本
java·apache
腾讯云中间件5 天前
基于 TDMQ for Apache Pulsar 的跨地域复制实践
apache
爱吃土豆的程序员5 天前
Apache License 2.0 和 MIT License 区别
apache·开源协议
喜欢猪猪5 天前
Apache Spark Streaming技术深度解析
大数据·spark·apache
天马37985 天前
Apache Cordova开发教程-入门基础
apache