DolphinScheduler工作流任务调度集群

构架说明

IP 组件规划 三方组件
83.1.12.43 work、alter jdk1.8、zookeeper、PGsql
83.1.12.44 master、work jdk1.8、zookeeper
83.1.12.45 work、api jdk1.8、zookeeper
部署使用 83.1.12.43  作为中控机,创建,启动,关闭集群 均在此服务器操作

端口说明

组件 默认端口 说明
MasterServer 5678 非通信端口,只需本机端口不冲突即可
WorkerServer 1234 非通信端口,只需本机端口不冲突即可
ApiApplicationServer 12345 提供后端通信端口
# 部署参考文档
https://dolphinscheduler.apache.org/zh-cn/docs/3.1.9/guide/installation/cluster

# Dolphinscheduler下载地址最新稳定版
https://dlcdn.apache.org/dolphinscheduler/3.1.9/apache-dolphinscheduler-3.1.9-bin.tar.gz

# Zookeeper下载地址最新稳定版
https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz

# PGSQL
使用Dcoker方式部署

配置免密登录

[root@83.1.12.43 ~]# ssh-keygen
# 一路回车
# 由于中控机也需要部署业务所以自己也要配置免密
[root@83.1.12.43 ~]# ssh-copy-id root@83.1.12.43
[root@83.1.12.43 ~]# ssh-copy-id root@83.1.12.44
[root@83.1.12.43 ~]# ssh-copy-id root@83.1.12.45

Zookeeper集群

# 上传 apache-zookeeper-3.8.4-bin.tar.gz 文件
[root@83.1.12.43 ~]# tar xf apache-zookeeper-3.8.4-bin.tar.gz -C /home
[root@83.1.12.43 ~]# cd /home
[root@83.1.12.43 ~]# mv apache-zookeeper-3.8.4-bin zookeeper
[root@83.1.12.43 ~]# mkdir zookeeper/data zookeeper/logs
[root@83.1.12.43 home]# cd zookeeper/conf
[root@83.1.12.43 conf]# cp zoo_sample.cfg zoo.cfg
# 编辑配置文件
[root@83.1.12.43 conf]# vim zoo.cfg
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/logs
# 集群配置 2888:选举端口 3888:投票端口
server.1=83.1.12.43:2888:3888
server.2=83.1.12.44:2888:3888
server.3=83.1.12.45:2888:3888

# 发送到另外两台服务器
[root@83.1.12.43 conf]# scp -r /home/zookeeper root@83.1.12.44:/home
[root@83.1.12.43 conf]# scp -r /home/zookeeper root@83.1.12.44:/home

# 创建myid文件
echo "1" > /home/zookeeper/data/myid

# 切换服务器
[root@83.1.12.44 ~]# echo "2" > /home/zookeeper/data/myid

# 切换服务器
[root@83.1.12.45 ~]# echo "3" > /home/zookeeper/data/myid


# 依次启动服务
[root@83.1.12.43 ~]# cd /home/zookeeper/bin
[root@83.1.12.43 bin]# ./zkServer.sh start

[root@83.1.12.44 ~]# cd /home/zookeeper/bin
[root@83.1.12.44 bin]# ./zkServer.sh start

[root@83.1.12.45 ~]# cd /home/zookeeper/bin
[root@83.1.12.45 bin]# ./zkServer.sh start

# 查看端口
[root@83.1.12.43 ~]# netstat -tnlp 
2181

# 常用命令
1. 启动ZK 服务:bin/zkServer.sh start
2. 查看ZK 服务状态:bin/zkServer.sh status
3. 停止ZK 服务:bin/zkServer.sh stop
4. 重启ZK 服务:bin/zkServer.sh restart

配置PG数据库

[root@83.1.12.43 ~]# 
docker run -d \
--name postgres \
--restart always \
-p 5432:5432 \
-e POSTGRES_PASSWORD=Admin@9000  \
-v postgresql_data:/var/lib/postgresql/data \
postgres:17


# 采用命令行工具登陆 PostgreSQL
[root@83.1.12.43 ~]# docker exec -it postgres bash
psql
# 创建数据库
postgres=# CREATE DATABASE dolphinscheduler;
# 修改 {user} 和 {password} 为你希望的用户名和密码
postgres=# CREATE USER {user} PASSWORD {password};
postgres=# ALTER DATABASE dolphinscheduler OWNER TO {user};
# 退出 PostgreSQL
postgres=#\q

配置Dolphinscheduler

# 数据库配置参考官方文档
https://github.com/apache/dolphinscheduler/blob/3.1.9-release/docs/docs/zh/guide/howto/datasource-setting.md
# 上传 Dolphinscheduler到43服务器同时作为中控机使用
# 修改dolphinscheduler_env.sh
[root@83.1.12.43 ~]# tar xf apache-dolphinscheduler-3.1.9-bin.tar.gz 
[root@83.1.12.43 ~]# mv apache-dolphinscheduler-3.1.9-bin /home/dolphinscheduler
[root@83.1.12.43 ~]# vim /home/dolphinscheduler/bin/env/dolphinscheduler_env.sh

# JAVA_HOME, will use it to start DolphinScheduler server
# JDK配置
export JAVA_HOME=${JAVA_HOME:-/usr/local/jdk-17.0.13}

# Database related configuration, set database type, username and password
# MySQL数据库配置
# 注意这里的数据库配置不要使用{} 官方文档写的{user}和{passwd}就是坑
export DATABASE=postgresql
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:postgresql://83.1.12.43:5432/dolphinscheduler"
export SPRING_DATASOURCE_USERNAME=postgres
export SPRING_DATASOURCE_PASSWORD=Admin@9000

# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}

# Registry center configuration, determines the type and link of the registry center
# zk注册中心
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-83.1.12.43:2181,83.1.12.44:2181,83.1.12.45:2181}

# Tasks related configurations, need to change the configuration if you use the related tasks.
# 其他环境配置(此处只配置了hadoop、hive,其他环境未部署)
# 如果你不使用某些任务类型,可以忽略不做配置,使用默认即可。比如Flink不使用,不做处理即可
export HADOOP_HOME=${HADOOP_HOME:-/home/soft/hadoop-3.3.6}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/home/soft/hadoop-3.3.6/etc/hadoop}
export SPARK_HOME=${SPARK_HOME:-/home/soft/spark}
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/home/soft/python}
export HIVE_HOME=${HIVE_HOME:-/home/soft/hive-3.1.3}
export FLINK_HOME=${FLINK_HOME:-/home/soft/flink}
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/home/soft/datax/bin/python3}

export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
# 修改install_env.sh
[root@83.1.12.43 ~]# vim /home/dolphinscheduler/bin/env/install_env.sh

# 按照集群部署方案,内容如下:

# 集群节点
ips=${ips:-"83.1.12.43,83.1.12.44,83.1.12.45"}

# ssh登录的端口 由于我的机器是22222,根据实际情况填写
# ssh免密端口,使用默认
sshPort=${sshPort:-"22222"}

# master节点
masters=${masters:-"83.1.12.44"}

# worker节点
workers=${workers:-"83.1.12.43:default,83.1.12.44:default,83.1.12.45:default"}

# alert节点
alertServer=${alertServer:-"83.1.12.43"}

# api节点
apiServers=${apiServers:-"83.1.12.45"}

# dolphinscheduler实际安装路径
installPath=${installPath:-"/home/dolphinscheduler"}

# 官方文档用的deployUser用户,但是我没有创建所以这里直接使用root
# 部署dolphinscheduler使用的用户名
deployUser=${deployUser:-"root"}

# zk根节点
zkRoot=${zkRoot:-"/dolphinscheduler"}
# 初始化数据库
[root@83.1.12.43 ~]# cd /home/dolphinscheduler/
[root@83.1.12.43 dolphinscheduler]# sh ./tools/bin/upgrade-schema.sh

# 等待跑码完成

安装Dolphinscheduler

# 执行install.sh部署命令
[root@83.1.12.43 dolphinscheduler]# ./bin/install.sh

登录Apache DolphinScheduler 控制台

访问地址:http://83.1.12.45:12345/dolphinscheduler/ui/

用户名:admin

密码:dolphinscheduler123

启动/停止服务命令

第一次安装后,会自动启动所有服务。如有服务问题或者后续需要启停,命令如下。以下脚本都在43中控机 DolphinScheduler安装目录的bin下

# 一键停止集群所有服务
sh /home/dolphinscheduler/bin/stop-all.sh

# 一键启动集群所有服务
sh /home/dolphinscheduler/bin/start-all.sh

# 启/停 master 服务
sh /home/dolphinscheduler/bin/dolphinscheduler-daemon.sh start master-server 
sh /home/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop master-server 

# 启/停 worker 服务
sh /home/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server 
sh /home/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop worker-server 

# 启/停 api 服务
sh /home/dolphinscheduler/bin/dolphinscheduler-daemon.sh start api-server 
sh /home/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop api-server 

# 启/停 alert 服务
sh /home/dolphinscheduler/bin/dolphinscheduler-daemon.sh start alert-server 
sh /home/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop alert-server
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。