集群部署方案(2 Master + 3 Worker)
- Apache DolphinScheduler官网:https://dolphinscheduler.apache.org/zh-cn
- Apache DolphinScheduler使用文档:https://dolphinscheduler.apache.org/zh-cn/docs/3.2.0
- 截止2024-01-19,最新版本:3.2.0
- 部署版本:apache-dolphinscheduler-3.2.0-bin.tar.gz
主机名 | ip | 部署服务 |
---|---|---|
hadoop31 | 192.168.0.31 | MasterServer、WorkerServer、ApiServer |
hadoop32 | 192.168.0.32 | MasterServer、WorkerServer |
hadoop33 | 192.168.0.33 | WorkerServer、AlertServer |
前置准备工作
- 操作系统:Linux CentOS 7.9 【CPU 4核+ 内存8G+】
- JDK:下载JDK(1.8+),安装并配置 JAVA_HOME 环境变量,并将其下的 bin 目录追加到 PATH 环境变量中。
- 数据库:MySQL(5.7+)或者 PostgreSQL(8.2.15+),两者任选其一即可,如 MySQL 则需要JDBC Driver 8.0.16 版本。【此处使用MySQL 8.2.0,驱动使用的是:mysql-connector-j-8.2.0.jar】
- 注册中心:Zookeeper(3.8.0+),集群模式,【此处使用 3.8.3 版本】
- 二进制包:下载地址 https://www.apache.org/dyn/closer.lua/dolphinscheduler/3.2.0/apache-dolphinscheduler-3.2.0-bin.tar.gz
- 注意:Apache DolphinScheduler 本身不依赖 Hadoop、Hive、Spark,但如果你运行的任务需要依赖他们,就需要有对应的环境支持。
端口说明
组件 | 默认端口 | 说明 |
---|---|---|
MasterServer | 5678 | 非通信端口,只需本机端口不冲突即可 |
WorkerServer | 1234 | 非通信端口,只需本机端口不冲突即可 |
ApiApplicationServer | 12345 | 提供后端通信端口 |
集群部署
时间同步
服务端:192.168.0.31 客户端:192.168.0.32、192.168.0.33,服务端在31执行,客户端在32、33执行
# 服务端和客户端,安装chrony
yum install chrony -y
# 服务端和客户端,安装chrony
yum install chrony -y
# 服务端(此处也可以使用 ntp.aliyun.com 来代替 192.168.0.31,使用阿里云时间服务,如果使用31则是本机时间)
cat > /etc/chrony.conf grant all privileges on dolphinscheduler.* to 'dolphinscheduler'@'%';
-- 刷新权限
mysql > flush privileges;
解压缩安装包
# 将apache-dolphinscheduler-3.2.0-bin.tar.gz上传至/opt/targz目录下
# 解压
[root@hadoop31 targz]# tar zxvf ./apache-dolphinscheduler-3.2.0-bin.tar.gz
# 修改目录权限,使得部署用户对解压缩后的文件有操作权限
[root@hadoop31 targz]# chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-3.2.0-bin
添加MySQL驱动至libs目录
此处使用 MySQL 8.2.0版本,对应使用 JDBC 驱动为 mysql-connector-j-8.2.0.jar,将该驱动移动至 DolphinScheduler 的每个模块下的 libs 目录下。共5个目录:
- api-server/libs
- alert-server/libs
- master-server/libs
- worker-server/libs
- tools/libs
配置文件修改
dolphinscheduler_env.sh 配置
# 修改dolphinscheduler_env.sh
vim apache-dolphinscheduler-3.2.0-bin/bin/env/dolphinscheduler_env.sh
# 在文末添加以下配置:
# JAVA_HOME, will use it to start DolphinScheduler server
# JDK配置
export JAVA_HOME=${JAVA_HOME:-/opt/soft/jdk8}
# Database related configuration, set database type, username and password
# MySQL数据库配置
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://192.168.17.28:3307/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME:-"dolphinscheduler"}
export SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD:-"dolphinscheduler"}
# 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:-hadoop31:2181,hadoop32:2181,hadoop33:2181}
# Tasks related configurations, need to change the configuration if you use the related tasks.
# 其他环境配置(此处只配置了hadoop、hive,其他环境未部署)
# 如果你不使用某些任务类型,可以忽略不做配置,使用默认即可。比如Flink不使用,不做处理即可
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop-3.3.6}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop-3.3.6/etc/hadoop}
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive-3.1.3}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/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文件修改
# 修改install_env.sh
vim apache-dolphinscheduler-3.2.0-bin/bin/env/install_env.sh
# 按照集群部署方案,内容如下:
# 集群节点
ips=${ips:-"hadoop31,hadoop32,hadoop33"}
# ssh免密端口,使用默认
sshPort=${sshPort:-"22"}
# master节点
masters=${masters:-"hadoop31,hadoop32"}
# worker节点
workers=${workers:-"hadoop31:default,hadoop32:default,hadoop33:default"}
# alert节点
alertServer=${alertServer:-"hadoop33"}
# api节点
apiServers=${apiServers:-"hadoop31"}
# dolphinscheduler实际安装路径
installPath=${installPath:-"/opt/soft/dolphinscheduler-3.2.0"}
# 部署dolphinscheduler使用的用户名
deployUser=${deployUser:-"dolphinscheduler"}
# zk根节点
zkRoot=${zkRoot:-"/dolphinscheduler"}
初始化元数据
# 切换到apache-dolphinscheduler-3.2.0-bin目录下,执行命令
[root@hadoop31 apache-dolphinscheduler-3.2.0-bin]# sh ./tools/bin/upgrade-schema.sh
# 此操作,会向MySQL数据库写入元数据,共计65张表,如图所示:
安装Apache DolphinScheduler
# 执行install.sh部署命令
[root@hadoop31 apache-dolphinscheduler-3.2.0-bin]# ./bin/install.sh
# 当看到下图时,说明 DS 安装完成
提示:
安装完成后,此时安装用到的 apache-dolphinscheduler-3.2.0-bin 文件就没用了。
此时,已经将 Apache DolphinScheduler 安装到配置中指定的 opt/soft/dolphinscheduler-3.2.0 目录下了
登录Apache DolphinScheduler 控制台
访问地址:http://192.168.0.31:12345/dolphinscheduler/ui/
用户名:admin
密码:dolphinscheduler123
查看监控中心Master/Worker节点信息
1.Master节点
2.Worker节点
启动/停止服务命令
第一次安装后,会自动启动所有服务。如有服务问题或者后续需要启停,命令如下。以下脚本都在 DolphinScheduler安装目录的bin下
# 一键停止集群所有服务
sh /opt/soft/dolphinscheduler-3.2.0/bin/stop-all.sh
# 一键启动集群所有服务
sh /opt/soft/dolphinscheduler-3.2.0/bin/start-all.sh
# 启/停 master 服务
sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh start master-server
sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh stop master-server
# 启/停 worker 服务
sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh start worker-server
sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh stop worker-server
# 启/停 api 服务
sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh start api-server
sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh stop api-server
# 启/停 alert 服务
sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh start alert-server
sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh stop alert-server
本文结束,谢谢!
用户实践案例奇富科技 蜀海供应链 联通数科 拈花云科蔚来汽车 长城汽车 集度 长安汽车思科网讯 生鲜电商 联通医疗 联想新网银行 消费金融 腾讯音乐 自如有赞 伊利 当贝大数据
联想 传智教育 Bigo通信行业 作业帮
迁移实践Azkaban Ooize Airflow (有赞案例) Air2phin(迁移工具)Airflow迁移实践Apache DolphinScheduler 3.0.0 升级到 3.1.8 教程
新手入门选择Apache DolphinScheduler的10个理由
Apache DolphinScheduler 3.1.8 保姆级教程【安装、介绍、项目运用、邮箱预警设置】轻松拿捏!
Apache DolphinScheduler 如何实现自动化打包+单机/集群部署?
Apache DolphinScheduler-3.1.3 版本安装部署详细教程
Apache DolphinScheduler 在大数据环境中的应用与调优
参与Apache DolphinScheduler 社区有非常多的参与贡献的方式,包括:
贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。
社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689
非新手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22
如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。