首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据同步集成工具SeaTunnel

数据同步集成工具SeaTunnel

作者头像
俊才
发布2024-12-19 15:16:26
发布2024-12-19 15:16:26
89400
代码可运行
举报
文章被收录于专栏:数据库干货铺数据库干货铺
运行总次数:0
代码可运行

1. SeaTunnel简介

SeaTunnel是Apache软件基金会孵化的数据集成平台,用于数据的提取(Extract)、加载(Load)和简单转换(Transform)。Transform 模块仅限于轻量级的数据处理,以保持整个流程的高效性。这种模块化设计和灵活的引擎支持,使得 SeaTunnel 能够适应各种数据集成场景,同时降低开发和运维成本。

SeaTunnel之处多种数据库、大数据存储间的转换

也支持事件数据、binlog等抽取这种

2. 部署

2.1 环境准备

jdk

运行环境需要用到JAVA,因此需要提前安装jdk,版本JDK8以上应该都可以。

maven(非必需)

因部署时很多包从国外的maven仓库下载,速度比较慢,因此建议修改maven仓库,从阿里云下载。

MySQL

用于存储前端相关信息,可以先创建一个数据库,并创建数据库用户并赋权

代码语言:javascript
代码运行次数:0
运行
复制
mysql> create database seatunnel;
Query OK, 1 row affected (0.00 sec)
mysql> create user  seatunnel identified by 'Seatunnel_2024';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on seatunnel.*  to  seatunnel;
Query OK, 0 rows affected (0.00 sec)

2.2 下载安装包

SeaTunnel的官网地址为 https://seatunnel.apache.org/

下载可以进入 https://seatunnel.apache.org/download 选择需要的版本进行下载。因SeaTunnel前后端分开的,因此需要下载后端及前端2个安装包。

  • 后端下载
  • 前端下载

下载后上传至部署的目标机器即可。

2.3 开始后端部署

解压下载的二进制安装包

代码语言:javascript
代码运行次数:0
运行
复制
# 进入目录seatunnel(提前创建)
cd seatunnel
# 解压 
tar -zxvf  apache-seatunnel-2.3.8-bin.tar.gz
  • 修改安装脚本

安装脚本在bin目录下的install-plugin.sh文件

将${SEATUNNEL_HOME}/mvnw 改为mvn ,这样可以从阿里云进行下载

修改后如下

  • 运行安装脚本

执行 sh install-plugin.sh即可进行安装

代码语言:javascript
代码运行次数:0
运行
复制
sh install-plugin.sh

可以看到从阿里云进行下载

一系列的包下载完毕即可

然后将connectors下的jar包拷贝到lib下

  • 启动一个测试任务验证

在config目录下有个模板任务配置

可以进行测试,例如

代码语言:javascript
代码运行次数:0
运行
复制
 ./bin/seatunnel.sh --config ./config/v2.batch.config.template -e local

运行结果如下图所示:

  • 启动后端服务
代码语言:javascript
代码运行次数:0
运行
复制
nohup  sh seatunnel-cluster.sh &

然后查看日志

至此后端服务即完成。

2.4 前端部署

  • 解压安装包
代码语言:javascript
代码运行次数:0
运行
复制
cd seatunnel
tar -zxvf apache-seatunnel-web-1.0.2-bin.tar.gz
  • 执行初始化SQ脚本

对于的初始化脚本在script目录下

可以直接执行seatunnel_server_mysql.sql脚本。也可以修改seatunnel_server_env.sh里的数据库服务器配置(对应信息就是准备工作中的数据库)

然后执行init_sql.sh脚本。此处我直接连接数据库执行脚本处理。

代码语言:javascript
代码运行次数:0
运行
复制
 # /usr/local/mysql/bin/mysql -h 192.168.56.129 -useatunnel -p'Seatunnel_2024' 
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.40 Source distribution
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| performance_schema |
| seatunnel          |
+--------------------+
3 rows in set (0.01 sec)
mysql> use Seatunnel;
Database changed
mysql> source seatunnel_server_mysql.sql;
Query OK, 1 row affected, 1 warning (0.00 sec)

完成后可以看到对应的表

  • 修改配置文件

修改config目录下的application.yml文件,将对应的数据库配置信息进行修改

  • 复制后端的client及 plugin配置文件

将后端的client及 plugin配置文件复制进前端配置文件目录下

代码语言:javascript
代码运行次数:0
运行
复制
cd /usr/local/seatunnel/apache-seatunnel-web-1.0.2-bin/conf
cp /usr/local/seatunnel/apache-seatunnel-2.3.8/config/hazelcast-client.yaml  .
cp /usr/local/seatunnel/apache-seatunnel-2.3.8/connectors/plugin-mapping.properties  .
  • 下载数据源驱动

可以直接拷贝后端已下载的jar包,也可以在bin目录下的download_datasource.sh文件,然后进行下载

直接拷贝如下:

另外,因为我是用的数据库是MySQL8.0.40版本,驱动要求相对高,因此手动上传一个高版本驱动值libs目录下。

  • 启动前端服务

因启动脚本中需要用到SEATUNNEL_HOME路径,因此先在环境变量中进行配置

然后执行脚本启动(注意,必须在bin目录的父节点执行,否则页面无法打开)

代码语言:javascript
代码运行次数:0
运行
复制
[root@tt bin]# sh bin/seatunnel-backend-daemon.sh  start 
starting seatunnel...
Load connectors from /usr/local/seatunnel/apache-seatunnel-web-1.0.2-bin
/usr/local/seatunnel/apache-seatunnel-web-1.0.2-bin/bin
seatunnel started

至此启动成功。可以通过http://ip:8801来访问

这样前后端就部署完成了。

进入后即可进行任务配置

3. 配置数据源

  • 创建mysql数据源

创建一个mysql数据源,命名为mysql1

  • 创建Clickhouse数据源

和创建mysql数据源一样,创建clickhouse数据源,命名ck1

完成后可以看到数据源列表

4. 小结

本次SeaTunnel部署的是单节点,也可以部署多节点的集群来提升性能。 另外,后续也将进行不同数据库之间的同步、ETL等相关操作。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库干货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档