关于数据库:Apache-SeaTunnel-及-Web-功能部署指南小白版

6次阅读

共计 9538 个字符,预计需要花费 24 分钟才能阅读完成。

在大数据处理畛域,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 配置中正文掉不须要的连接器

shell
sh /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/logs

cd $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.shinit_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 官网文档或退出社区寻求帮忙。

创作不易,对您有帮忙,点个赞呗,感激~~~~

本文由 白鲸开源科技 提供公布反对!

正文完
 0