【部署】Apache DolphinScheduler(海豚) 伪集群部署(Pseudo-Cluster)
- Standalone极速体验版
- DolphinScheduler 伪集群部署
- 前置准备工作
- 本地部署环境
- 准备 DolphinScheduler 启动环境
- 配置用户免密及权限
- 配置机器SSH免密登陆
- 启动zookeeper
- 下载并解压
- 修改相关配置
- 初始化数据库
- 安装并启动 DolphinScheduler
- 登录 DolphinScheduler
- 启停服务
- 快速上手
- 部署遇到的问题
Standalone极速体验版
Standalone 仅适用于 DolphinScheduler 的快速体验.
如果你是新手,想要体验 DolphinScheduler 的功能,推荐使用Standalone方式体检。如果你想体验更完整的功能,或者更大的任务量,推荐使用伪集群部署。如果你是在生产中使用,推荐使用集群部署或者kubernetes
注意: Standalone仅建议20个以下工作流使用,因为其采用 H2 Database, Zookeeper Testing Server,任务过多可能导致不稳定
DolphinScheduler 伪集群部署
伪集群部署目的是在单台机器部署 DolphinScheduler 服务,该模式下master、worker、api server、logger server都在同一台机器上
前置准备工作
伪分布式部署 DolphinScheduler 需要有外部软件的支持
- JDK:下载JDK (1.8+),并将 JAVA_HOME 配置到以及 PATH 变量中。如果你的环境中已存在,可以跳过这步。
- 二进制包:在下载页面下载 DolphinScheduler 二进制包
- 数据库:PostgreSQL (8.2.15+) 或者 MySQL (5.7+),两者任选其一即可,如 MySQL 则需要 JDBC Driver 8.0.16
- 注册中心:ZooKeeper (3.4.6+)
注意: DolphinScheduler 本身不依赖 Hadoop、Hive、Spark,但如果你运行的任务需要依赖他们,就需要有对应的环境支持
本地部署环境
- 虚拟软件:Vmware15 安装指南
- 操作系统:Ubuntu 11.3.0-1ubuntu1~22.04 安装指南
- JDK:jdk-8u231-linux-x64 安装指南
- Zookeeper:apache-zookeeper-3.5.7-bin 安装指南
- DolphinScheduler:apache-dolphinscheduler-2.0.5-bin 下载地址
- 数据库:mysql Ver 8.0.31-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu)) 安装指南
准备 DolphinScheduler 启动环境
配置用户免密及权限
- 官网原话: 因为任务执行服务是以 sudo -u {linux-user} 切换不同 linux 用户的方式来实现多租户运行作业,所以部署用户需要有 sudo 权限,而且是免密的。 原话出处
- 我的选择: 我使用的root用户,不需要这一步。 Ubuntu登录root
配置机器SSH免密登陆
由于安装的时候需要向机器发送资源,所以要求机器能实现SSH免密登陆。配置免密登陆的步骤如下
## su dolphinscheduler 我用root不需要这步
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
注意: 配置完成后,可以通过运行命令 ssh localhost 判断是否成功,如果不需要输入密码就能ssh登陆则证明成功
启动zookeeper
进入 zookeeper 的安装目录,将 zoo_sample.cfg 配置文件复制到 conf/zoo.cfg,并将 conf/zoo.cfg 中 dataDir 中的值改成 dataDir=./tmp/zookeeper
# 启动 zookeeper
zkServer.sh start
检查一下时候成功启动
jps
-------------------------------------------
root@ubuntu204:~# jps
11622 QuorumPeerMain #出现这个进程代表启动成功
35131 Jps
root@ubuntu204:~#
下载并解压
# 1 创建安装目录
mkdir /opt/DolphinScheduler
# 2 将DolphinScheduler赋予给escheduler用户
# chown -R escheduler:escheduler /opt/DolphinScheduler ##我用root用户不用这个
# 3 下载二进制包,或者通过SFTP上传二进制包
cd /opt/DolphinScheduler
wget https://www.apache.org/dyn/closer.lua/dolphinscheduler/2.0.5/apache-dolphinscheduler-2.0.5-bin.tar.gz
#4解压
tar -zxvf apache-dolphinscheduler-2.0.5-bin.tar.gz
mv apache-dolphinscheduler-2.0.5-bin dolphinscheduler2.0.5
cd dolphinscheduler2.0.5/
修改相关配置
完成了基础环境的准备后,在运行部署命令前,还需要根据环境修改配置文件。配置文件在路径在conf/config/install_config.conf下,一般部署只需要修改INSTALL MACHINE、DolphinScheduler ENV、Database、Registry Server部分即可完成部署,下面对必须修改参数进行说明
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# 因为是在单节点上部署master、worker、API server,所以服务器的IP均为机器IP或者localhost
ips="localhost"
masters="localhost"
workers="localhost:default"
alertServer="localhost"
apiServers="localhost"
pythonGatewayServers="localhost"
# DolphinScheduler安装路径,如果不存在会创建
installPath="/opt/Dolphinscheduler/data/dolphinscheduler"
# 部署用户,填写在 **配置用户免密及权限** 中创建的用户
deployUser="root"
# ---------------------------------------------------------
# DolphinScheduler ENV
# ---------------------------------------------------------
# JAVA_HOME 的路径,是在 **前置准备工作** 安装的JDK中 JAVA_HOME 所在的位置
javaHome="opt/jdk/jdk1.8"
# ---------------------------------------------------------
# Database
# ---------------------------------------------------------
# 数据库的类型,用户名,密码,IP,端口,元数据库db。其中 DATABASE_TYPE 目前支持 mysql, postgresql, H2
# 请确保配置的值使用双引号引用,否则配置可能不生效
DATABASE_TYPE="mysql"
SPRING_DATASOURCE_URL="jdbc:mysql://localhost:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8"
# 如果你不是以 dolphinscheduler/dolphinscheduler 作为用户名和密码的,需要进行修改
SPRING_DATASOURCE_USERNAME="dolphinscheduler"
SPRING_DATASOURCE_PASSWORD="dolphinscheduler"
# ---------------------------------------------------------
# Registry Server
# ---------------------------------------------------------
# 注册中心地址,zookeeper服务的地址
registryServers="localhost:2181"
初始化数据库
DolphinScheduler 元数据存储在关系型数据库中,目前支持 PostgreSQL 和 MySQL,如果使用 MySQL 则需要手动下载 mysql-connector-java 驱动 (8.0.16) 并移动到 DolphinScheduler 的 lib目录下。下面以 MySQL 为例,说明如何初始化数据库
#登录
mysql -uroot -p
#创建数据库
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
#创建用户
mysql> create user 'dolphinscheduler'@'%' identified by 'dolphinscheduler';
#用户授权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'dolphinscheduler'@'%';
#刷新
mysql> flush privileges;
完成上述步骤后,您已经为 DolphinScheduler 创建一个新数据库,现在你可以通过快速的 Shell 脚本来初始化数据库
sh script/create-dolphinscheduler.sh
安装并启动 DolphinScheduler
使用上面创建的部署用户运行以下命令完成部署,部署后的运行日志将存放在 logs 文件夹内
sh install.sh
注意: 第一次部署的话,可能出现 5 次sh: bin/dolphinscheduler-daemon.sh: No such file or directory相关信息,次为非重要信息直接忽略即可
登录 DolphinScheduler
浏览器访问地址 http://localhost:12345/dolphinscheduler 即可登录系统UI。默认的用户名和密码是 admin/dolphinscheduler123
启停服务
# 一键停止集群所有服务
sh ./bin/stop-all.sh
# 一键开启集群所有服务
sh ./bin/start-all.sh
# 启停 Master
sh ./bin/dolphinscheduler-daemon.sh stop master-server
sh ./bin/dolphinscheduler-daemon.sh start master-server
# 启停 Worker
sh ./bin/dolphinscheduler-daemon.sh start worker-server
sh ./bin/dolphinscheduler-daemon.sh stop worker-server
# 启停 Api
sh ./bin/dolphinscheduler-daemon.sh start api-server
sh ./bin/dolphinscheduler-daemon.sh stop api-server
# 启停 Logger
sh ./bin/dolphinscheduler-daemon.sh start logger-server
sh ./bin/dolphinscheduler-daemon.sh stop logger-server
# 启停 Alert
sh ./bin/dolphinscheduler-daemon.sh start alert-server
sh ./bin/dolphinscheduler-daemon.sh stop alert-server
# 启停 Python Gateway
sh ./bin/dolphinscheduler-daemon.sh start python-gateway-server
sh ./bin/dolphinscheduler-daemon.sh stop python-gateway-server
快速上手
-
喜欢看视频的伙伴可以参见手把手教你如何《快速上手 Apache DolphinScheduler 教程》
-
管理员用户登录
地址:http://localhost:12345/dolphinscheduler 用户名密码:admin/dolphinscheduler123
-
创建队列
-
创建租户
-
创建普通用户
-
使用普通用户登录
点击右上角用户名“退出”,重新使用普通用户登录。 -
项目管理->创建项目->点击项目名称
-
点击工作流定义->创建工作流定义->上线工作流定义
-
运行工作流定义->点击工作流实例->点击工作流实例名称->双击任务节点->查看任务执行日志
部署遇到的问题
-
Source : commond not found
- Text-to-HTML conversion tool Zookeeper connect time out
- John
- Luke localhost:2181
- John
- Luke
参考文章 : https://dolphinscheduler.apache.org/zh-cn/docs/2.0.5/guide/quick-start