SeaTunnel 实战: Apache SeaTunnel 安装与部署

文章目录

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


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

一、准备工作

1.1 环境

类目要求(基础环境安装请自行百度)
操作系统CentOS 7.6.18_x86_64 内核 3.10.0-1160.el7.x86_64
JavaJava 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 解压安装包

tar -xvf apache-seatunnel-2.3.6-bin.tar.gz

2.2.配置环境变量

在这里插入图片描述

export SEATUNNEL_HOME=/seatunnel/apache-seatunnel-2.3.6
export PATH=$SEATUNNEL_HOME/bin:$PATH

2.3.配置立刻生效

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 文件中的所有连接器,路径如下:

/seatunnel/apache-seatunnel-2.3.6/config/plugin_config

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

--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出品,必属精品。

执行下载命令

/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 测试验证

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

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

在这里插入图片描述

2.6 启动服务

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

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

tail -100f logs/seatunnel-engine-server.log

看到如下所示页面,即标识启动成功。
在这里插入图片描述

三、SeaTunnel Web 1.0.1安装

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

tar -xvf apache-seatunnel-web-1.0.1-bin.tar.gz

重命名下

mv apache-seatunnel-web-1.0.1-bin apache-seatunnel-web-1.0.1

3.2 设置 SeaTunnel Web 环境变量

export SEATUNNEL_WEB_HOME=/seatunnel/apache-seatunnel-web-1.0.1
export PATH=${SEATUNNEL_WEB_HOME}/bin:$PATH

3.3 初始化数据库

数据库脚本路径

/seatunnel/apache-seatunnel-web-1.0.1/script

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

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

在这里插入图片描述

3.4 修改端口与数据源

配置文件 application.yml 路径

/seatunnel/apache-seatunnel-web-1.0.1/conf

在这里插入图片描述
在这里插入图片描述

3.5 修改secretKey(很重要)

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

        <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>
    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 目录下:

/seatunnel/apache-seatunnel-2.3.6/config

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

/seatunnel/apache-seatunnel-2.3.6/connectors

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

/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,在下面的路径下

/seatunnel/apache-seatunnel-web-1.0.1/bin
./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,所以我这里直接切换到该目录下,执行以下启动命令:

#进入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,

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

username: admin
password: admin

浏览器访问图示地址,看到如下界面,基本启动就成功了。
在这里插入图片描述

四、排错过程

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pythonUI自动化008::allure测试报告(安装及应用)

allure报告预览 1 下载jdk&#xff0c;配置jdk Path变量&#xff1a; https://www.cnblogs.com/FBGG/p/15103119.html&#xff08;这里不作阐述&#xff0c;请看该偏文章配置即可&#xff09; 2 下载allure驱动&#xff0c;配置allure Path变量&#xff1a; 下载allure驱动&a…

【免费】最新区块链钱包和私钥的助记词碰撞器,bybit使用python开发

使用要求 1、用的是google里面的扩展打包成crx文件&#xff0c;所以在使用之前你需要确保自己电脑上有google浏览器&#xff0c;而且google浏览器版本需要在124之上。&#xff08;要注意一下&#xff0c;就是电脑只能有一个Chrome浏览器&#xff09; 2、在win10上用vscode开发…

锂电池剩余寿命预测 | Matlab基于Transformer-GRU的锂电池剩余寿命预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab基于Transformer-GRU的锂电池剩余寿命预测&#xff0c;Transformer结合门控循环单元。 Matlab基于Transformer-GRU的锂电池剩余寿命预测&#xff08;单变量&#xff09; 运行环境Matlab2023b及以上。 首先从…

C++初阶:模版进阶【非类型模版参数】【模版的特化】【模版分离编译】

目录 一.非类型模版参数 二.模版的特化 2.1模版特化的概念 2.2函数模版的特化 2.3类模版特化 2.3.1全特化 2.3.2偏特化 2.3.3使用类模版特化 三.模版分离编译 一.非类型模版参数 模板参数分类类型形参与非类型形参。 类型形参&#xff1a;出现在模板参数列表中&…

【数据结构算法经典题目刨析(c语言)】使用队列实现栈(图文详解)

目录 一.题目描述 二.解题思路 三.代码实现 &#x1f493; 博客主页&#xff1a;C-SDN花园GGbond ⏩ 文章专栏&#xff1a;数据结构经典题目刨析(c语言) 一.题目描述 二.解题思路 首先这道题需要我们使用两个队列来完成栈的实现, 这里我们的思路是, 栈的要求是后进先出, …

C语言进阶——一文带你深度了解“C语言关键字”(中篇6)

本篇文章记录我学习C语言进阶知识——C语言关键字&#xff0c;旨在记录分享&#xff0c;希望我的分享能带给你不一样的收获&#xff01; 目录 一、return关键字 二、const 关键字也许该被替换为 readolny &#xff08;一&#xff09;、 const 修饰的只读变量 &#xff08;二…

腾讯云COS和阿里云OSS在Springboot中的使用

引言&#xff1a;之前本来是用OSS做存储的&#xff0c;但是上线小程序发现OSS貌似消费比COS多一些&#xff0c;所以之前做了技术搬迁&#xff0c;最近想起&#xff0c;打算做个笔记记录一下&#xff0c;这里省去在阿里云注册OSS或腾讯云中注册COS应用了。 一、OSS 1、配置yml …

C ++ 也可以搭建Web?高性能的 C++ Web 开发框架 CPPCMS + MySQL 实现快速入门案例

什么是CPPCMS&#xff1f; CppCMS 是一个高性能的 C Web 开发框架&#xff0c;专为构建快速、动态的网页应用而设计&#xff0c;特别适合高并发和低延迟的场景。其设计理念类似于 Python 的 Django 或 Ruby on Rails&#xff0c;但针对 C 提供了更细粒度的控制和更高效的性能。…

Golang | Leetcode Golang题解之第330题按要求补齐数组

题目&#xff1a; 题解&#xff1a; func minPatches(nums []int, n int) (patches int) {for i, x : 0, 1; x < n; {if i < len(nums) && nums[i] < x {x nums[i]i} else {x * 2patches}}return }

【Python学习手册(第四版)】学习笔记19-函数的高级话题

个人总结难免疏漏&#xff0c;请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文主要介绍函数相关的高级概念&#xff1a;递归函数、函数注解、lambda表达式函数&#xff0c;常用函数工具如map、filter、reduce&#xff0c;以及通用的函数设…

【超音速 专利 CN117576413A】种锂电池测试数据绑定方法、设备及存储介质

申请号CN202010618671.X公开号&#xff08;公开&#xff09;CN111967546A申请日2020.11.20申请人&#xff08;公开&#xff09;广州超音速自动化科技股份有限公司(833753)发明人&#xff08;公开&#xff09;张俊峰(总&#xff09;; 叶长春(总&#xff09;; 蓝明观 术语 治具…

【MySQL】数据库约束和多表查询

目录 1.前言 2.数据库约束 2.1约束类型 2.2 NULL约束 2.3 NUIQUE&#xff1a;唯一约束 2.4 DEFAULT&#xff1a;默认值约束 2.5 PRIMARY KEY&#xff1a;主键约束 2.6 FOREIGN KEY&#xff1a;外键约束 1.7 CHECK约束 3.表的设计 3.1一对一 3.2一对多 3.3多对多 …

vue3-02-vue3中的组件通信

目录 组件通信一、vue3组件通信和vue2的区别二、父子通信2.1 props通信1&#xff09;父→子传递数据&#xff08;父组件向子组件传递数据&#xff09;2&#xff09;子→父传递数据 2.2 v-model1&#xff09;v-model的本质2&#xff09;给modelValue起别名3&#xff09;$event 2…

用Python制作开心消消乐游戏|附源码

制作一个完整的“开心消消乐”风格的游戏在Python中是一个相对复杂的项目&#xff0c;因为它涉及到图形界面、游戏逻辑、动画效果以及用户交互等多个方面。不过&#xff0c;我可以为你提供一个简化的版本和概念框架&#xff0c;帮助你理解如何开始这个项目&#xff0c;并提供一…

英伟达元宇宙平台Omniverse的学习,技术调研

NVIDIA Omniverse™ 是一个基于 USD (Universal Scene Description) 的可扩展平台&#xff0c;可使个人和团队更快地构建自定义 3D 工作流并模拟大型虚拟世界。 Omniverse&#xff1a;三维设计协同、模拟的开发平台&#xff0c;实现3D实时渲染&#xff0c;RTX光线追踪技术 协…

职场英语培训柯桥外语学校学外语学英语到银泰泓畅学校

“工作量太大了”怎么说&#xff1f; 导致加班有一个非常大的因素就是&#xff1a; “工作量太大了&#xff01;” “ 注意&#xff1a;形容工作量太大不使用“big”一词&#xff0c;要用heavy&#xff0c;相应的要说工作量较小&#xff0c;可以用light. 工作量大/小 &…

数据中心互连的关键要素和核心技术

数据中心互连&#xff08;DCI&#xff09;依靠其关键要素和核心技术进行的高效、可靠和高速的连接&#xff0c;实现了数据中心跨区域连接的即时通信和数据交换&#xff0c;成为了现代数字通信基础设施的重要组成部分。从光模块和多路复用设备到网络协议和管理系统&#xff0c;D…

Leetcode75-5 反转字符串的元音字母

本质上来说就是反转字符串 一部分需要反转 一部分不动 思路: 1.用String字符串倒序拼接 就是过滤掉不是元音字符 然后把所有的字符&#xff08;非元音的直接复制过来 元音字母直接从反转的字符串里边复制即可&#xff09; 2.看了题解发现自己写的啰嗦了 就是一个双指针问题用…

酒店行业如何利用XML进行营销短信

随着信息社会的到来&#xff0c;消费者获得会所的服务也从单纯的电话方式&#xff0c;逐渐转变为电话、互联网、传真&#xff0c;群发短信等多种媒体并行的方式。今天着重介绍下酒店行业如何利用短信平台进行营销。 群发短信业务对酒店起到的效率&#xff1a;根据新产品或服务向…

java实现解析pdf格式发票

为了减少用户工作量及误操作的可能性&#xff0c;需要实现用户上传PDF格式的发票&#xff0c;系统通过解析PDF文件获取发票内容&#xff0c;并直接将其写入表单。以下文章记录了功能实现的代码。 发票样式 发票内容解析 引用Maven 使用pdfbox <dependency><groupI…