在大数据处理畛域,Apache SeaTunnel 已成为一款备受青眼的开源数据集成平台,它不仅能够基于Apache Spark和Flink,而且还有社区独自开发专属数据集成的Zeta引擎,提供了弱小的数据处理能力。随着SeaTunnel Web的推出,用户界面(UI)操作变得更加敌对,我的项目部署和治理更加便捷。
本指南旨在提供一个简明扼要的步骤,帮忙用户胜利部署SeaTunnel及其Web界面。小主曾经把可能遇到的坑都填过了,心愿大家都能安安稳稳上路,不掉坑,话不多说,走起~
1.预置环境
1.1.所需软件包及版本要求
- CentOS 7.6.18\_x86\_64
- JDK >= 1.8.151
- Maven >= 3.6.3
- Apache Seatunnel ==2.3.3
- Apache Seatunnel Web == 1.0.0
- MySQL >= 5.7.28
1.2.下载地址
官网下载入口: 下载入口
apache-seatunnel-2.3.3: apache-seatunnel-2.3.3-bin.tar.gz
apache-seatunnel-web-1.0.0: apache-seatunnel-web-1.0.0
1.3.筹备工作
1.3.1.装置JDK
装置及配置零碎环境变量略过,自行百度
1.3.2.装置Maven
装置及配置零碎环境变量、配置阿里云仓库镜像, 略过,自行百度
1.3.3.创立装置软件目录
创立SeaTunnel后端服务装置目录
mkdir -p /opt/bigdata/seatunnel-2.3.3/backend
创立SeaTunnel前端服务装置目录
mkdir -p /opt/bigdata/seatunnel-2.3.3/web
1.3.4.下载或者本地上传安装包
下载apache-seatunnel-2.3.3-bin.tar.gz
进入1.3.2中创立好的装置目录
cd /opt/bigdata/seatunnel-2.3.3/backend
下载安装包
wget https://dlcdn.apache.org/seatunnel/2.3.3/apache-seatunnel-2.3.3-bin.tar.gz
下载[apache-seatunnel-web-1.0.0.tar.gz
进入1.3.2中创立好的装置目录
cd /opt/bigdata/seatunnel-2.3.3/web
下载安装包
wget https://dlcdn.apache.org/seatunnel/seatunnel-web/1.0.0/apache-seatunnel-web-1.0.0-bin.tar.gz
如果你曾经将安装包下载到本地, 可通过FTP工具上传安装包到前后端各自的装置目录。
2.装置Apache Seatunnel
2.1.解压安装包
解压后端安装包
tar -zxf /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3-bin.tar.gz
重命名安装包
mv apache-seatunnel-2.3.3-bin apache-seatunnel-2.3.3
解压前端安装包
tar -zxf /opt/bigdata/seatunnel-2.3.3/web/apache-seatunnel-web-1.0.0-bin.tar.gz
重命名安装包
mv apache-seatunnel-web-1.0.0-bin apache-seatunnel-web-1.0.0
2.2.配置环境变量
在/etc/profile
中配置环境变量
让批改配置立刻失效
source /etc/profile
2.3.下载JAR包
2.3.1.创立目录
mkdir -p /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/connectors/flink
mkdir -p /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/connectors/flink-sql
mkdir -p /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/connectors/spark
mkdir -p /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/connectors/seatunnel
2.3.2.批改下载脚本
下载脚本的地位
/opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/bin
批改install-plugin.sh之前请先备份
mvn减速下载seatunnel相干jar包
装置seatunnel过程中,解压文件后官网默认提供的connector的jar包只有2个,要想连贯mysql,oracle,SqlServer,hive,kafka,clickhouse,doris等时,还需下载对应的jar包。
应用本地Maven减速下载connector相干jar包
seatunnel下载connector的jar时,应用mvnw来下载jar包,默认是从https://repo.maven.apache.org 下载,速度及其迟缓。咱们能够改成本人在linux零碎上装置的mvn,配置阿里云近程仓库地址,从阿里云mvn源下载会快很多, 上面教大家如何进行批改。
批改其装置插件相干脚本,复制bin目录下install-plugin.sh重命名为install-plugin.sh.bak
替换脚本中的${SEATUNNEL_HOME}/mvnw为mvn,即可应用本地mvn,配合阿里云的mvn源,可减速下载。
2.3.3.执行下载
主动下载
执行命令即可,个别不举荐,因为从官网下载速度太慢,能够通过批改相干的代码进行手动减速下载。
零碎默认主动下载时会下载所有的连接器JAR, 如果临时不须要应用, 能够在执行下载脚本执行之前先在/opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/config/pulgun_config
配置中正文掉不须要的连接器
shellsh /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/bin/install-plugin.sh
主动下载实现之后, 将/opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/connectors/seatunnel
下所有的jar包都拷贝到/opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/lib
目录下
手动下载
批改代码,通过阿里云的mvn源疾速下载,而后将相干jar包复制到对应目录即可。
seatunnel-connectors下载地址
留神:下载jar复制到两个文件夹,一个是lib文件夹,一个是connectors/seatunnel
文件夹。
2.3.4.测试验证
进入装置目录
cd /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3
启动服务
./bin/seatunnel.sh --config ./config/v2.batch.config.template -e local
2.4.启动服务
进入装置目录
cd /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3
启动服务
nohup sh bin/seatunnel-cluster.sh 2>&1 &
在seatunnel的装置目录下查看日志
tail -f logs/seatunnel-engine-server.log
有以下相似信息打印出,阐明启动胜利。
必须保障Apache SeaTunnel的Server失常运行,Web端服务能力失常运行。
3.装置Apache Seatunnel Web
3.1.装置配置Seatunnel引擎集群
在SeaTunnel的Web端机器上须要装置SeaTunnel客户端,如果服务端与Web端在同一台机器,则可间接跳过这个步骤。
本文档的装置过程中,Seatunnel服务端和web是装置在同一台机器上, 所以间接跳过此步装置步骤。
这里所说的Seatunnel引擎客户端其实就是咱们章2中装置的Seatunnel服务端, 上面解说一下如何进行Seatunnel集群的装置配置
3.1.1.筹备服务器节点
咱们当初须要搭建Seatunnel引擎集群,须要筹备n台服务器节点, 我这里应用了3台服务器。比方, 已知咱们的3台服务器的IP别离是
192.168.1.110
192.168.1.111
192.168.1.112
咱们间接在章2
中曾经装置部署好的Seatunnel单节点中进行集群的配置,次要的配置批改蕴含以下几项:
3.1.2.批改JVM参数
在seatunnel的装置目录,找到$SEATUNNEL_HOME/bin/seatunnel-cluster.sh
将 JVM 选项增加到$SEATUNNEL_HOME/bin/seatunnel-cluster.sh第一行
JAVA_OPTS=“-Xms2G -Xmx2G”
如果不想这样进行批改,也能够, 不过须要在进行集群启动时,自行减少JVM参数进行启动, 启动命令如下:
nohup sh $SEATUNNEL_HOME/bin/seatunnel-cluster.sh -DJvmOption="-Xms2G -Xmx2G" 2>&1 &
3.1.3.SeaTunnel Engine配置
SeaTunnel Engine Server配置是在sh $SEATUNNEL_HOME/config/seatunnel.yaml
.
具体配置想可参考官网文档4. Config SeaTunnel Engine,这里不赘述
3.1.4.SeaTunnel Engine Server配置
SeaTunnel Engine Server配置是在sh $SEATUNNEL_HOME/config/hazelcast.yaml
.
集群名称配置
SeaTunnel Engine 节点应用集群名称来确定对方是否与本人是一个集群。 如果两个节点之间的集群名称不同,SeaTunnel 引擎将拒绝服务申请。
网络配置
SeaTunnel Engine 集群基于 Hazelcast,是运行 SeaTunnel Engine Server 的集群成员的网络。 集群成员主动连贯在一起造成集群。 这种主动退出是通过集群成员用来查找彼此的各种发现机制来实现的。
请留神,集群造成后,集群成员之间的通信始终通过 TCP/IP 进行,无论应用何种发现机制。
SeaTunnel 引擎应用以下发现机制。
TCP
您能够将 SeaTunnel Engine 配置为残缺的 TCP/IP 集群。 无关配置详细信息,请参阅通过 TCP 发现成员局部。
hazelcast.yaml
配置示例如下:
hazelcast: cluster-name: seatunnel network: join: tcp-ip: enabled: true member-list: - hostname1 port: auto-increment: false port: 5801 properties: hazelcast.logging.type: log4j2
在独立 SeaTunnel 引擎集群中咱们倡议应用TCP形式。
另一方面,Hazelcast 提供了一些其余的服务发现办法。 详情请参考hazelcast网
3.1.4.3 Map配置
- type
imap长久化类型,目前仅反对hdfs。
- namespace
命令空间用于辨别不同业务的数据存储地位,例如OSS的桶名。
- clusterName
这个参数次要用于集群隔离,咱们能够通过这个来辨别不同的集群,比方cluster1、cluster2,这个也能够用来辨别不同的业务
- fs.defaultFS
We used hdfs api read/write file, so used this storage need provide hdfs configuration
if you used HDFS, you can config like this:
map: engine*: map-store: enabled: true initial-mode: EAGER factory-class-name: org.apache.seatunnel.engine.server.persistence.FileMapStoreFactory properties: type: hdfs namespace: /tmp/seatunnel/imap clusterName: seatunnel-cluster storage.type: hdfs fs.defaultFS: hdfs://localhost:9000
如果没有 HDFS 并且您的集群只有一个节点,您能够配置为应用本地文件,如下所示:
map: engine*: map-store: enabled: true initial-mode: EAGER factory-class-name: org.apache.seatunnel.engine.server.persistence.FileMapStoreFactory properties: type: hdfs namespace: /tmp/seatunnel/imap clusterName: seatunnel-cluster storage.type: hdfs fs.defaultFS: file:///
如果你应用OSS,你能够这样配置:
map: engine*: map-store: enabled: true initial-mode: EAGER factory-class-name: org.apache.seatunnel.engine.server.persistence.FileMapStoreFactory properties: type: hdfs namespace: /tmp/seatunnel/imap clusterName: seatunnel-cluster storage.type: oss block.size: block size(bytes) oss.bucket: oss://bucket name/ fs.oss.accessKeyId: OSS access key id fs.oss.accessKeySecret: OSS access key secret fs.oss.endpoint: OSS endpoint fs.oss.credentials.provider: org.apache.hadoop.fs.aliyun.oss.AliyunCredentialsProvider
3.1.5.SeaTunnel Engine Client配置
SeaTunnel Engine Client配置是在sh $SEATUNNEL_HOME/config/hazelcast-client.yaml
.
集群名称配置
客户端必须与 SeaTunnel 引擎具备雷同的集群名称。 否则,SeaTunnel 引擎将回绝客户端申请。
网络配置
cluster-members
所有 SeaTunnel 引擎服务器节点地址都须要增加到此处。
hazelcast-client: cluster-name: seatunnel properties: hazelcast.logging.type: log4j2 network: cluster-members: - hostname1:5801
3.1.6.启动Seatunnel引擎服务端节点
mkdir -p $SEATUNNEL_HOME/logscd $SEATUNNEL_HOME./bin/seatunnel-cluster.sh -d
如果集群存在多台节点, 须要启动所有节点上的Seatunnel引擎服务。
3.1.7.装置Seatunnel引擎客户端并启动
您只需将SeaTunnel引擎节点上的装置目录目录复制到客户端节点主机的雷同装置目录下,并像SeaTunnel引擎服务器节点一样配置SEATUNNEL_HOME,之后启动服务即可。
3.2.配置Seatunnel Web服务
3.2.1.数据库初始化
批改数据库连贯配置
将script/seatunnel_server_env.sh
相干配置改为你的对应的数据库信息
以上截图中原始文件中配置的是HOSTNAME,PORT,USERNAME,PASSWORD
等,然而因为的机器上有全局配置文件也用了这几个变量名,然而链接的数据库信息和seatunnel连贯的数据库不是一个数据库, 因为名称抵触导致在启动web服务时连贯数据哭失败,
所以我这里批改了seatunnel_server_env.sh
和init_sql.sh
脚本中的HOSTNAME,PORT,USERNAME,PASSWORD
能够加上前缀SEATUNNEL_
,变成了
SEATUNNEL_HOSTNAME,SEATUNNEL_PORT,SEATUNNEL_USERNAME,SEATUNNEL_PASSWORD
肯定要记住, 如果你依照文档批改了seatunnel_server_env.sh
脚本的变量名, 肯定要将init_sql.sh
脚本中对应的变量名称进行同步批改,如下图:
执行初始化数据库命令
进入seatunnel-web的装置目录,而后执行命令sh init_sql.sh
,无异样则执行胜利。
3.2.2.配置WEB后端服务
批改后端根底配置
web后端服务的配置文件都在${web装置目录}/conf
下
vim conf/application.yml
批改端口号和数据源连贯信息
配置client信息
将seatunnel引擎服务节点的装置目录下的config目录下的对于引擎客户端的配置文件拷贝到seatunnel-web装置目录下的conf目录下
同一台机器下部署间接应用以下拷贝命令(留神批改服务的装置目录为你本人的装置目录)
sudo cp /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/config/hazelcast-client.yaml /opt/bigdata/seatunnel-2.3.3/web/apache-seatunnel-web-1.0.0/conf
如果不在同一台机器上, 能够应用scp命令或者下载下来而后上传到web服务的装置主机的装置目录下的conf目录下即可。
配置反对的插件信息
将seatunnel引擎服务节点的装置目录下的connectors目录下的plugin-mapping.properties配置文件拷贝到seatunnel-web装置目录下的conf目录下
sudo cp /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/connectors/plugin-mapping.properties /opt/bigdata/seatunnel-2.3.3/web/apache-seatunnel-web-1.0.0/conf
同一台机器下部署间接应用以下拷贝命令(留神批改服务的装置目录为你本人的装置目录)如果不在同一台机器上, 能够应用scp命令或者下载下来而后上传到web服务的装置主机的装置目录下的conf目录下即可。
3.2.3.下载配置数据源JAR包
这一步十分要害, 这一步如果没有配置好, 即便你失常启动了web利用,可能也会遇到下列问题:
- 数据源类型抉择页面为空, 我这里因为失常配置, 所以失常显示
- 没有Source或者Sink进行抉择
- 工作无奈失常执行
获取下载脚本
数据源JAR包的下载脚本在seatunnel-web
的源码包中存在,它的目录在:
批改配置文件如下:
执行脚本,下载数据源JAR包
正在下载
胜利下载下所有的datasourceJAR包
上传到Seatunnel-Web我的项目的libs目录
将以上所有jar包复制到/opt/bigdata/seatunnel-2.3.3/web/apache-seatunnel-web-1.0.0/libs
目录下
上传到Seatunnel引擎服务的lib目录
将以上所有jar包复制到/opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/lib
目录下
3.2.4.配置元数据MySQL的驱动JAR包
MySQL的驱动包mysql-connector-java-8.0.20.jar
自行下载
上传到SeaTunnel引擎服务的lib目录
将mysql-connector-java-8.0.20.jar
包复制到/opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/lib
下
3.2.5.启动WEB服务
这一步也很容易出错,很多人都配置对了,然而最初启动起来,发现无奈通过浏览拜访, 查看日志打印如下:
造成这样的问题就是你执行启动命令的地位不对, 留神web服务装置之后的目录构造如下图:
所以启动服务必须要保障服务能够拜访到ui目录下的index.html文件才能够,因为我的项目启动前端的我的项目门路默认增加了/ui的前缀,所以后端我的项目的启动门路必须在ui目录的父级目录才能够,所以这里须要再web服务的装置目录下执行启动脚本,举例:
我这里的装置目录是/opt/bigdata/seatunnel-2.3.3/web/apache-seatunnel-web-1.0.0
, 所以我这里间接切换到该目录下,执行以下启动命令:
#进入web服务的装置目录cd /opt/bigdata/seatunnel-2.3.3/web/apache-seatunnel-web-1.0.0#执行启动脚本sudo sh bin/seatunnel-backend-daemon.sh start
拜访http://主机IP:12306
(此端口为conf/application.yml
中配置的端口), 页面主动跳转到http://主机IP:12306/ui
,
默认登录的用户名和明码:
username:admin
password:admin
OK, 至此所有的搭建流程就完结了。
4.资源链接
这外面有些资源的下载特地慢, 这里将整个配置好的前后端的我的项目资源打包寄存到百度网盘,地址如下:
Seatunnel引擎及Web服务一键安装包
提取码:rryz
下载下来之后,批改所有波及数据库连贯的配置文件为你本人的连贯配置信息, 而后执行3.2.1大节
的初始化数据库命令, 而后顺次启动SeaTunnel引擎服务、Web服务即可。
通过遵循上述步骤,你应该可能胜利部署SeaTunnel及其Web界面。这将为你的大数据处理工作提供一个弱小的工具,同时享受到基于Web的界面带来的便当。如果在部署过程中遇到任何问题,不要犹豫,查阅SeaTunnel官网文档或退出社区寻求帮忙。
创作不易,对您有帮忙,点个赞呗,感激~~~~
本文由 白鲸开源科技 提供公布反对!