文章
问答
冒泡
Dolphinscheduler+Seatunnel+Flink 数据集成 - 三剑客

组件配置:

  • 服务器:Ubuntu 22.04.1 LTS
  • Flink:1.16.2
  • Seatunnel:2.3.2
  • Dolphinscheduler:3.1.6
  • Java:1.8.x 或更高版本
 

Flink Local部署:

  • 下载 release 1.16.2 并解压
tar -xzf flink-1.16.2-bin-scala_2.12.tgz -C /opt/soft
cd /opt/soft
mv flink-1.16.2-bin-scala_2.12 flink-1.16.2
  • 启动集群
./bin/start-cluster.sh
0
  • 访问Web UI:ip:8081
0
  • 停止集群
./bin/stop-cluster.sh
 

Seatunnel Local部署:

  • 下载解压
wget https://dlcdn.apache.org/seatunnel/2.3.2/apache-seatunnel-2.3.2-bin.tar.gz
tar -zxvf apache-seatunnel-2.3.2-bin.tar.gz -C /opt/soft
cd /opt/soft
mv apache-seatunnel-2.3.2-bin seatunnel-2.3.2
0
  • 修改connectors plugin
cd cofnig 
vim plugin_config
0
0
 
默认连接器有几十种,这里先选以上常用的几种进行装配
 
  • 执行安装
cd /opt/soft/seatunnel-2.3.2
./bin/install-plugin.sh 2.3.2
 
tips:
如果需要添加或删除新的连接器,只需修改plugin_config文件,然后执行install即可
 

DolphinScheduler伪集群部署:

  • 源码优化编译
在ds里执行seatunnel flink任务时,由于在生成flink命令是会默认添加--run-mode run 参数,从而会导致任务执行失败,
所以此处要对源麻将进行改造(详细操作请参考https://www.ithere.net/article/1648958805961310210
拉取源码到本地,修改seatunnel任务配置,打包编译,在dist下找到 apache-dolphinscheduler-3.1.6-SNAPSHOT-bin.tar.gz
0
 
  • 解压配置
tar -xvzf apache-dolphinscheduler-3.1.6-SNAPSHOT-bin.tar.gz -C /opt/soft
cd /opt/soft
mv apache-dolphinscheduler-3.1.6-SNAPSHOT-bin dolphinscheduler-3.1.6-bin
cd dolphinscheduler-3.1.6-bin
 
0
 
  • 配置用户免密及权限

创建部署用户,并且一定要配置 sudo 免密。以创建 dolphinscheduler 用户为例

# 创建用户需使用 root 登录
useradd dolphinscheduler

# 添加密码
# centos
echo "dolphinscheduler" | passwd --stdin dolphinscheduler

# ubuntu
echo dolphinscheduler:dolphinscheduler | chpasswd

# 配置 sudo 免密
sed -i '$adolphinscheduler  ALL=(ALL)  NOPASSWD: NOPASSWD: ALL' /etc/sudoers
sed -i 's/Defaults    requirett/#Defaults    requirett/g' /etc/sudoers

# 修改目录权限,使得部署用户对二进制包解压后的 dolphinscheduler-3.1.6-bin 目录有操作权限
chown -R dolphinscheduler:dolphinscheduler dolphinscheduler-3.1.6-bin
 
  • 配置机器SSH免密登录

由于安装的时候需要向不同机器发送资源,所以要求各台机器间能实现SSH免密登陆。配置免密登陆的步骤如下

cd /home/
mkdir dolphinscheduler
chown -R dolphinscheduler:dolphinscheduler /home/dolphinscheduler/

su dolphinscheduler

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
 
0
  • 启动zookeeper

进入 zookeeper 的安装目录,将 zoo_sample.cfg 配置文件复制到 conf/zoo.cfg,并将 conf/zoo.cfg 中 dataDir 中的值改成 dataDir=./tmp/zookeeper

# 启动 zookeeper
cd /opt/soft/zookeeper-3.8.0/
./bin/zkServer.sh start

修改相关配置

完成基础环境的准备后,需要根据服务器环境修改配置文件。配置文件可以在目录 bin/env 中找到,分别是 install_env.shdolphinscheduler_env.sh
初始化数据库
  1. DolphinScheduler 元数据存储在关系型数据库中,目前支持 PostgreSQL 和 MySQL。以下为PostgreSQL配置:
# 采用命令行工具登陆 PostgreSQL
psql
# 创建数据库
postgres=# CREATE DATABASE dolphinscheduler;
# 修改 {user} 和 {password} 为你希望的用户名和密码
postgres=# CREATE USER {user} PASSWORD {password};
postgres=# ALTER DATABASE dolphinscheduler OWNER TO {user};
# 退出 PostgreSQL
postgres=#\q
# 在终端执行如下命令,向配置文件新增登陆权限,并重载 PostgreSQL 配置,替换 {ip} 为对应的 DS 集群服务器 IP 地址段
echo "host    dolphinscheduler   {user}    {ip}     md5" >> $PGDATA/pg_hba.conf
pg_ctl reload
  1. 然后修改./bin/env/dolphinscheduler_env.sh
 
tips:
如果使用 MySQL 需要手动下载 mysql-connector-java 驱动 (8.0.16) 并移动到 DolphinScheduler 的每个模块的 libs 目录下,其中包括 api-server/libs 和 alert-server/libs 和 master-server/libs 和 worker-server/libs。
 
  • 修改 install_env.sh 文件
文件 install_env.sh 描述了哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。您可以在路径 bin/env/install_env.sh 中找到此文件,可通过以下方式更改env变量,export =,配置详情如下。
 
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# Due to the master, worker, and API server being deployed on a single node, the IP of the server is the machine IP or localhost
ips="localhost"
sshPort="22"
masters="localhost"
workers="localhost:default"
alertServer="localhost"
apiServers="localhost"

# DolphinScheduler installation path, it will auto-create if not exists
installPath=~/dolphinscheduler

# Deploy user, use the user you create in section **Configure machine SSH password-free login**
deployUser="dolphinscheduler"
 
  • 修改 dolphinscheduler_env.sh 文件
文件 ./bin/env/dolphinscheduler_env.sh 描述了下列配置:
0

配置seatunnel和flink软链接

# seatunnel服务
ln -s /opt/soft/seatunnel-2.3.2/ /opt/soft/seatunnel

#flink服务
ln -s /opt/soft/flink-1.16.2/ /opt/soft/flink
 

启动 DolphinScheduler

使用上面创建的部署用户运行以下命令完成部署,部署后的运行日志将存放在 logs 文件夹内
bash ./bin/install.sh
注意: 第一次部署的话,可能出现 5 次sh: bin/dolphinscheduler-daemon.sh: No such file or directory相关信息,此为非重要信息直接忽略即可
 
登录 DolphinScheduler
浏览器访问地址 http://localhost:12345/dolphinscheduler/ui 即可登录系统UI。默认的用户名和密码是 admin/dolphinscheduler123
0
启停服务
# 一键停止集群所有服务
bash ./bin/stop-all.sh

# 一键开启集群所有服务
bash ./bin/start-all.sh

# 启停 Master
bash ./bin/dolphinscheduler-daemon.sh stop master-server
bash ./bin/dolphinscheduler-daemon.sh start master-server

# 启停 Worker
bash ./bin/dolphinscheduler-daemon.sh start worker-server
bash ./bin/dolphinscheduler-daemon.sh stop worker-server

# 启停 Api
bash ./bin/dolphinscheduler-daemon.sh start api-server
bash ./bin/dolphinscheduler-daemon.sh stop api-server

# 启停 Alert
bash ./bin/dolphinscheduler-daemon.sh start alert-server
bash ./bin/dolphinscheduler-daemon.sh stop alert-server
 

测试dolphinscheduler+flink+seatunnel集成

  1. 创建任务
0
  1. 选择seatunnel组件
 
0
 
0
 
  1. 发布作业,执行任务
 
0
 
0
 
flink
Seatunnel
Dolphinscheduler

关于作者

Miraclewcg
上善若水
获得点赞
文章被阅读