当前位置: 首页 > article >正文

DolphinScheduler工作流任务调度集群部署

DolphinScheduler工作流任务调度集群

构架说明

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

端口说明

组件默认端口说明
MasterServer5678非通信端口,只需本机端口不冲突即可
WorkerServer1234非通信端口,只需本机端口不冲突即可
ApiApplicationServer12345提供后端通信端口
# 部署参考文档
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 

http://www.kler.cn/a/591289.html

相关文章:

  • 联邦学习(Federated Learning)
  • 深度学习 Deep Learning 第2章 线性代数
  • Vue渲染函数 - render 函数
  • Business processes A bridge to SAP and a guide to SAP TS410 certification
  • Python简单爬虫实践案例
  • vulhub-Billu-b0x攻略
  • 消融实验(Ablation Study)
  • 输入输出 数组 冒泡排序举例
  • MongoDB 可观测性最佳实践
  • IMX6ULL学习整理篇——Linux驱动开发的基础3:向新框架迁移
  • orcal数据库与国产数据库 gabse 8a的数据库语法函数差异
  • TF中 Arg 节点
  • RocketMq 顺序消息要怎么实现?
  • Python模块化设计 ——函数概念
  • HTML5扫雷游戏开发实战
  • 持续升级的电子实验记录本系统,更加好用、安全
  • Linux 命令:按内存使用大小排序查看 PID 的完全指南
  • Day19:把数字翻译成字符串
  • Android Fresco 框架工具与测试模块源码深度剖析(五)
  • 【Linux】进程间通信——共享内存