说明

上一篇,我们花了很大的精力,去安装一个单机版本的 SeaTunnel。

回头看,我们可以把这个步骤简化。

环境准备

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

windows WSL 安装实战笔记

jdk

  [plaintext]
1
2
3
4
5
6
7
8
dh@d:~$ java -version Command 'java' not found, but can be installed with: sudo apt install openjdk-11-jre-headless # version 11.0.20.1+1-0ubuntu1~22.04, or sudo apt install default-jre # version 2:1.11-72build2 sudo apt install openjdk-17-jre-headless # version 17.0.8.1+1~us1-0ubuntu1~22.04 sudo apt install openjdk-18-jre-headless # version 18.0.2+9-2~22.04 sudo apt install openjdk-19-jre-headless # version 19.0.2+7-0ubuntu3~22.04 sudo apt install openjdk-8-jre-headless # version 8u382-ga-1~22.04.1

安装一下

  [plaintext]
1
sudo apt install openjdk-8-jre-headless
  [plaintext]
1
2
3
4
$ java -version openjdk version "1.8.0_392" OpenJDK Runtime Environment (build 1.8.0_392-8u392-ga-1~22.04-b08) OpenJDK 64-Bit Server VM (build 25.392-b08, mixed mode)

配置 JAVA_HOME

  [plaintext]
1
update-alternatives --list java

如下:

  [plaintext]
1
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

则对应的 java home 为:/usr/lib/jvm/java-8-openjdk-amd64/jre

我们修改一下 /etc/profile

  [plaintext]
1
sudo vi /etc/profile

添加对应的 java_home 信息:

  [bash]
1
2
3
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre export SEATUNNEL_HOME=/home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3 export PATH=$SEATUNNEL_HOME/bin:$JAVA_HOME/bin:$PATH

刷新配置:

  [plaintext]
1
source /etc/profile

测试:

  [plaintext]
1
2
$ echo $JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/jre

maven 安装

  [plaintext]
1
2
3
4
5
6
7
8
mvn -v $ mvn -v Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00) Maven home: /mnt/d/tool/maven/apache-maven-3.5.4 Java version: 1.8.0_392, vendor: Private Build, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre Default locale: en, platform encoding: UTF-8 OS name: "linux", version: "5.15.133.1-microsoft-standard-wsl2", arch: "amd64", family: "unix"

WSL 内核版本

  [plaintext]
1
2
3
4
dh@d:~$ uname -r 5.15.133.1-microsoft-standard-WSL2 dh@d:~$ uname -a Linux d 5.15.133.1-microsoft-standard-WSL2 #1 SMP Thu Oct 5 21:02:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

1-mysql 的安装

mysql 安装

安装好对应的 mysql 5.7+。

脚本初始化

导出所有的建表语句和数据。

备份原来初始化好的数据库:

  [sql]
1
mysqldump -u admin -p seatunnel > /home/dh/sql/seatunnel_backup.sql

创建安装软件目录

创建+下载 backend

创建seatunnel后端服务安装目录

  [bash]
1
2
# 创建文件夹 mkdir -p /home/dh/bigdata/

把对应的压缩包上传,解压。

官方下载地址:https://seatunnel.apache.org/download/

  [bash]
1
2
wget https://dlcdn.apache.org/seatunnel/2.3.3/apache-seatunnel-2.3.3-bin.tar.gz tar -zxvf apache-seatunnel-2.3.3-bin.tar.gz

配置环境变量

配置 /etc/profile,添加内容:

直接 vi 修改

  [plaintext]
1
sudo vi /etc/profile

加在末尾。

  [bash]
1
2
3
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre export SEATUNNEL_HOME=/home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3 export PATH=$SEATUNNEL_HOME/bin:$JAVA_HOME/bin:$PATH

配置立刻生效:

  [bash]
1
source /etc/profile

2. 安装 backend 后端

2.0 执行下载依赖包

简化插件内容,过滤掉无关的。

  [bash]
1
2
3
cp /home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/config/plugin_config /home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/config/plugin_config_bak vi /home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/config/plugin_config

指定内容如下,我们只下载需要的,比如 mysql cdc。

  [plaintext]
1
2
--connectors-v2-- connector-cdc-mysql

执行命令:

  [bash]
1
bash /home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/bin/install-plugin.sh

实际上为:

  [bash]
1
2
cd /home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3 mvn dependency:get -DgroupId=org.apache.seatunnel -Dclassifier=optional -DartifactId=seatunnel-hadoop3-3.1.4-uber -Dversion=2.3.3 -Ddest=/home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/lib

缺失的 mysql 包需要单独下载:

  [bash]
1
2
cd /home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/lib wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar

2.1 启动验证

  [bash]
1
2
3
4
5
#进入安装目录 $ cd /home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3 # 启动服务 $ ./bin/seatunnel.sh --config ./config/v2.batch.config.template -e local

2.2 服务启动

  [bash]
1
2
3
4
5
6
#进入安装目录 cd /home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3 # 关闭 bash bin/stop-seatunnel-cluster.sh # 启动服务 nohup bash bin/seatunnel-cluster.sh 2>&1 &

日志查看在

  [bash]
1
tail -f /home/dh/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/logs/seatunnel-engine-server.log

3. 安装 web 端

3.2.配置Seatunnel Web服务

3.2.1.数据库初始化

登录到数据库。

创建数据库:

  [sql]
1
2
create database seatunnel; use seatunnel;

直接运行

  [sql]
1
source /path/to/seatunnel_init.sql;

3.2.2.配置WEB后端服务

3.2.2.1.修改后端基础配置

web后端服务的配置文件都在 ${web安装目录}/conf

  [plaintext]
1
2
3
4
5
6
7
8
9
10
$ pwd /home/dh/bigdata/seatunnel-2.3.3/web/apache-seatunnel-web-1.0.0/conf $ ll total 24 drwxr-xr-x 2 dh dh 4096 Oct 11 13:36 ./ drwxr-xr-x 8 dh dh 4096 Oct 11 13:37 ../ -rw-r--r-- 1 dh dh 1740 Feb 18 2022 application.yml -rw-r--r-- 1 dh dh 4141 Feb 18 2022 connector-datasource-mapper.yaml -rw-r--r-- 1 dh dh 2533 Feb 18 2022 logback-spring.xml

vim conf/application.yml 修改端口号和数据源连接信息

  [yaml]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
server: port: 18801 spring: application: name: seatunnel jackson: date-format: yyyy-MM-dd HH:mm:ss datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://172.24.20.97:13306/seatunnel?useSSL=false&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&allowPublicKeyRetrieval=true username: admin password: 123456 mvc: pathmatch: matching-strategy: ant_path_matcher jwt: expireTime: 86400 secretKey: https://github.com/apache/seatunnel algorithm: HS256

3.2.5.启动WEB服务

这一步也很容易出错,很多人都配置对了,但是最后启动起来,发现无法通过浏览访问, 查看日志打印如下:

  [plaintext]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ pwd /home/dh/bigdata/seatunnel-2.3.3/web/apache-seatunnel-web-1.0.0 $ ll total 100 drwxr-xr-x 8 dh dh 4096 Oct 11 13:37 ./ drwxr-xr-x 3 dh dh 4096 Jan 9 14:01 ../ -rw-r--r-- 1 dh dh 552 Feb 18 2022 DISCLAIMER -rw-r--r-- 1 dh dh 32455 Feb 18 2022 LICENSE -rw-r--r-- 1 dh dh 23737 Feb 18 2022 NOTICE drwxr-xr-x 2 dh dh 4096 Jan 9 14:01 bin/ drwxr-xr-x 2 dh dh 4096 Jan 9 16:38 conf/ drwxr-xr-x 2 dh dh 12288 Jan 9 17:55 libs/ drwxr-xr-x 3 dh dh 4096 Jan 9 14:01 licenses/ drwxr-xr-x 2 dh dh 4096 Jan 9 16:26 script/ drwxr-xr-x 3 dh dh 4096 Jan 9 14:01 ui/

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

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

  [sh]
1
2
3
4
5
6
#进入web服务的安装目录 cd /home/dh/bigdata/seatunnel-2.3.3/web/apache-seatunnel-web-1.0.0 #执行启动脚本 chmod +x ./bin/seatunnel-backend-daemon.sh ./bin/seatunnel-backend-daemon.sh start

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

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

username:admin password:admin

参考资料

https://blog.csdn.net/qq_41865652/article/details/134574104

https://avoid.overfit.cn/post/ac32f113f8b8490d980ed761122c4237