高可用部署 Tapdata(推荐)
本文介绍如何快速在本地环境部署 Tapdata 服务。
软硬件环境要求
- CPU:8 核
- 内存:16 GB
- 存储空间:100 GB
- 操作系统:CentOS 7 + 或 Ubuntu 16.04 +
部署架构
本案例中,假设我们有两个服务器(A 和 B),分别为它们配置了 IP,现在我们希望分别在这两个服务器上部署完整的 Tapdata 服务,即管理服务、同步治理服务和 API 服务,从而实现整体服务的高可用。此环境中,我们已完成了 MongoDB 副本集的部署,可为 Tapdata 服务提供运行数据的存储服务。
本文以 CentOS 7 为例,演示服务器 A 和 服务器 B 的部署流程。
准备工作
在部署前,我们需要为这两台服务器执行分别下述操作。
登录至服务器,依次执行下述命令完成文件访问数、防火墙等系统参数设置。
ulimit -n 1024000
echo "* soft nofile 1024000" >> /etc/security/limits.conf
echo "* hard nofile 1024000" >> /etc/security/limits.conf
systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce 0
sed -i "s/enforcing/disabled/g" /etc/selinux/config安装环境依赖。
执行下述命令安装 Java 1.8 版本。
yum -y install java-1.8.0-openjdk
安装 MongoDB(4.0 及以上版本),该库将作为中间库存储任务等数据,具体操作,见官方文档。
下载 Tapdata 安装包(可联系我们获取),将其上传至待部署的设备中。
在待部署的设备上,执行下述格式的命令,解压安装包并进入解压后的路径。
tar -zxvf 安装包名&&cd tapdata
例如:
tar -zxvf tapdata-release-v2.14.tar.gz&&cd tapdata
服务器 A 部署流程
获取 License 文件。
执行下述命令获取申请所需的 SID 信息。
java -cp components/tm.jar -Dloader.main=com.tapdata.tm.license.util.SidGenerator org.springframework.boot.loader.PropertiesLauncher
将打印出的 SID 信息提供给 Tapdata 支持团队,完成 License 申请流程。
将申请到的 License 文件上传至解压后的目录(tapdata)中。
在 tapdata 目录中,执行
./tapdata start
,跟随命令行提示,依次设置 Tapdata 的登录地址、API 服务端口、MongoDB 连接信息等,示例及说明如下:./tapdata start
_______ _____ _____ _______
|__ __|/\ | __ \| __ \ /\|__ __|/\
| | / \ | |__) | | | | / \ | | / \
| | / /\ \ | ___/| | | |/ /\ \ | | / /\ \
| |/ ____ \| | | |__| / ____ \| |/ ____ \
|_/_/ \_\_| |_____/_/ \_\_/_/ \_\
WORK DIR:/root/tapdata
Init tapdata...
✔ Please enter backend url, comma separated list. e.g.:http://127.0.0.1:3030/ (Default: http://127.0.0.1:3030/): …
✔ Please enter tapdata port. (Default: 3030): …
✔ Please enter api server port. (Default: 3080): …
✔ Does MongoDB require username/password?(y/n): … no
✔ Does MongoDB require TLS/SSL?(y/n): … no
✔ Please enter MongoDB host, port, database name(Default: 127.0.0.1:27017/tapdata): …
✔ Does API Server response error code?(y/n): … yes
MongoDB uri: mongodb://127.0.0.1:27017/tapdata
MongoDB connection command: mongo mongodb://127.0.0.1:27017/tapdata
System initialized. To start Tapdata, run: tapdata start
WORK DIR:/root/tapdata
Testing JDK...
java version:1.8
Java environment OK.
Unpack the files...
Restart TapdataAgent ...:
TapdataAgent starting ...:- Please enter backend url:设置 Tapdata 平台的登录地址,默认为
http://127.0.0.1:3030/
- Please enter tapdata port:设置 Tapdata 平台的登录端口,默认为
3030
。 - Please enter api server port:设置 API Server 的服务端口,默认为
3080
。 - Does MongoDB require username/password?:MongoDB 数据库是否启用了安全认证,未启用则输入 n,如果启用则输入 y,然后根据提示分别输入用户名、密码和鉴权数据库(默认为
admin
)。 - Does MongoDB require TLS/SSL?(y/n):MongoDB 数据库是否启用 TSL/SSL 加密,未启用则输入 n,如果启用则输入 y,然后根据提示分别输入 CA 证书和 Certificate Key 文件的绝对地址路径,以及 Certificate Key 的文件密码。
- Please enter MongoDB host, port, database name:设置 MongoDB 数据库的 URI 连接信息,默认为
127.0.0.1:27017/tapdata
。 - Does API Server response error code?:是否启用 API Server 响应错误码功能。
部署成功后,命令行返回示例如下:
deployed connector.
Waiting for the flow engine to start \
FlowEngine is startup at : 2023-04-01 23:00
API service started- Please enter backend url:设置 Tapdata 平台的登录地址,默认为
通过浏览器登录 Tapdata 平台,本机的登录地址为 http://127.0.0.1:3030,首次登录请及时修改密码以保障安全性。
提示如需在同一内网的其他设备上访问 Tapdata 服务,请确保网络可互通。
服务器 B 部署流程
获取 License 文件。
执行下述命令获取申请所需的 SID 信息。
java -cp components/tm.jar -Dloader.main=com.tapdata.tm.license.util.SidGenerator org.springframework.boot.loader.PropertiesLauncher
将打印出的 SID 信息提供给 Tapdata 支持团队,完成 License 申请流程。
将申请到的 License 文件上传至解压后的目录(tapdata)中。
在 tapdata 目录中,执行
./tapdata start
,跟随命令行提示,依次设置 Tapdata 的登录地址、API 服务端口、MongoDB 连接信息等,示例及说明如下:./tapdata start
_______ _____ _____ _______
|__ __|/\ | __ \| __ \ /\|__ __|/\
| | / \ | |__) | | | | / \ | | / \
| | / /\ \ | ___/| | | |/ /\ \ | | / /\ \
| |/ ____ \| | | |__| / ____ \| |/ ____ \
|_/_/ \_\_| |_____/_/ \_\_/_/ \_\
WORK DIR:/root/tapdata
Init tapdata...
✔ Please enter backend url, comma separated list. e.g.:http://127.0.0.1:3030/ (Default: http://127.0.0.1:3030/): … http://192.168.1.200:3030,http://192.168.1.201:3030
✔ Please enter tapdata port. (Default: 3030): …
✔ Please enter api server port. (Default: 3080): …
✔ Does MongoDB require username/password?(y/n): … no
✔ Does MongoDB require TLS/SSL?(y/n): … no
✔ Please enter MongoDB host, port, database name(Default: 127.0.0.1:27017/tapdata): … 192.168.1.200:27017/tapdata
✔ Does API Server response error code?(y/n): … yes
MongoDB uri: mongodb://192.168.1.200:27017/tapdata
MongoDB connection command: mongo mongodb://192.168.1.200:27017/tapdata
System initialized. To start Tapdata, run: tapdata start
WORK DIR:/root/tapdata
Testing JDK...
java version:1.8
Java environment OK.
Unpack the files...
frontend server started.begin deploy init
Try to connect to TM for deploy connector...
deploy connector...- Please enter backend url:设置 Tapdata 平台的登录地址,此处我们需要设置服务器 A 和 B 的登录地址,以英文逗号(,)分隔,即填入:
http://192.168.1.200:3030,http://192.168.1.201:3030
- Please enter tapdata port:设置 Tapdata 平台的登录端口,默认为
3030
。 - Please enter api server port:设置 API Server 的服务端口,默认为
3080
。 - Does MongoDB require username/password?:MongoDB 数据库是否启用了安全认证,未启用则输入 n,如果启用则输入 y,然后根据提示分别输入用户名、密码和鉴权数据库(默认为
admin
)。 - Does MongoDB require TLS/SSL?(y/n):MongoDB 数据库是否启用 TSL/SSL 加密,未启用则输入 n,如果启用则输入 y,然后根据提示分别输入 CA 证书和 Certificate Key 文件的绝对地址路径,以及 Certificate Key 的文件密码。
- Please enter MongoDB host, port, database name:设置 MongoDB 数据库的 URI 连接信息,本案例中,我们填写为
mongodb://192.168.1.200:27017/tapdata
。 - Does API Server response error code?:是否启用 API Server 响应错误码功能。
部署成功后,命令行返回示例如下:
deployed connector.
Waiting for the flow engine to start \
FlowEngine is startup at : 2023-04-01 23:10
API service started- Please enter backend url:设置 Tapdata 平台的登录地址,此处我们需要设置服务器 A 和 B 的登录地址,以英文逗号(,)分隔,即填入:
两个服务器上的 Tapdata 服务均已完成部署,在同一内网的设备,即可通过 http://192.168.1.200:3030 或 http://192.168.1.201:3030 来登录管理页面。
提示首次登录请及时修改密码以保障安全性。
登录成功后,在系统管理 > 集群管理中,即可查看到两个服务器上 Tapdata 服务的状态。