DolphinScheduler海豚调度部署
DolphinScheduler以2.0.6版本为例。
参考文档:部署文档
部署规划
单机部署

伪集群部署

集群部署

安装JDK
下载JDK
JDK下载地址
如图:

选择如下版本下载:
jdk-8u361-linux-x64.tar.gz
将下载的JDK压缩包,上传至Linux的/root/tools目录。
解压
执行如下命令:
tar -zxvf /root/tools/jdk-8u361-linux-x64.tar.gz -C /root/jdk
将jdk解压到/root/jdk目录下。
配置
执行如下命令,打开配置文件
vi /etc/profile
文件末尾添加如下配置:
export JAVA_HOME=/root/jdk/jdk1.8.0_361
export PATH=$JAVA_HOME/bin:$PATH
执行如下命令,生效配置:
source /etc/profile
安装DolphinScheduler
下载
DolphinScheduler下载地址
如图,点击查看更多

选择对应版本,这里选择2.0.6,如图:

下载后,文件名如下:
apache-dolphinscheduler-2.0.6-bin.tar.gz
将下载的压缩包上传至Linux指定目录。
解压
执行如下命令,将压缩包解压到root目录下:
tar -zxvf /root/tools/apache-dolphinscheduler-2.0.6-bin.tar.gz -C /root
如图:

启动
进度apache-dolphinscheduler-2.0.6-bin目录下,启动DolphinScheduler:
cd apache-dolphinscheduler-2.0.6-bin
./bin/dolphinscheduler-daemon.sh start standalone-server
启动成功后,执行jps,可以看到StandaloneServer进程,如图:

登录
使用浏览器访问
http://192.168.189.111:12345/dolphinscheduler/ui
如果无法访问,可能是Linux防火墙未关闭,执行如下命令查看防火墙,并关闭:
systemctl status firewalld.service
systemctl stop firewalld.service
再次登录dolphinscheduler,如图:

默认登录用户名/密码:admin/dolphinscheduler123
停止
./bin/dolphinscheduler-daemon.sh stop standalone-server
伪集群部署(Pseudo-Cluster)
伪分布式部署 DolphinScheduler 需要除了需要安装JDK和DolphinScheduler,还需要安装如下外部软件:
数据库:PostgreSQL (8.2.15+) 或者 MySQL (5.7+),两者任选其一即可,如 MySQL 则需要 JDBC Driver 8.0.16
注册中心:ZooKeeper (3.4.6+),下载地址
进程树分析
macOS安装pstree
Fedora/Red/Hat/CentOS/Ubuntu/Debian安装psmisc
切换到root
su -
安装JDK
同单机部署。
安装psmisc
执行如下命令,安装:
yum -y install psmisc
如图:

这里Linux已经安装过。
安装ZooKeeper
下载
我们选用zookeeper-3.4.6,下载地址ZooKeeper下载
如图:

选择对应版本:

下载后文件:zookeeper-3.4.6.tar.gz
解压
执行如下命令,将zookeeper解压到/root目录下:
tar -zxvf zookeeper-3.4.6.tar.gz -C /root/
如图:

配置
zoo_sample.cfg重命名伪zoo.cfg:
mv /root/zookeeper-3.4.6/conf/zoo_sample.cfg /root/zookeeper-3.4.6/conf/zoo.cfg
zoo.cfg配置文件中dataDir的值改为如下:
dataDir=./tmp/zookeeper
启动
执行如下命令,启动zookeeper(启动dolphinscheduler需要):
./bin/zkServer.sh start
查看启动状态:
./bin/zkServer.sh status
如图:

可以看到ZooKeeper启动模式为standalone。
关闭:
./bin/zkServer.sh stop
安装MySQL
mysql8.0.28版本
官网下载

上传解压
tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar

查询有无mariadb(与mysql有冲突)
rpm -qa|grep mariadb

强制卸载mariadb
rpm -e --nodeps mariadb-libs

这里需要依次安装依赖包(重点)
rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm
初始化数据库
mysqld --initialize --console
设置权限
chown -R mysql:mysql /var/lib/mysql/
启动服务
systemctl start mysqld
查看临时密码
cat /var/log/mysqld.log|grep localhost

登录
mysql -uroot -p
输入上面的临时红色密码

改一个好一点记的密码
alter user 'root'@'localhost' identified by '123456';
退出查看一下
exit
登录
mysql -uroot -p

查看一下数据库
show databases;

这样就安装成功了
开启连接模式
进入到mysql数据库中:
use mysql;
select host from user where user='root';

我们执行update语句把权限进行修改
update user set host = '%' where user ='root';
然后 刷新配置
flush privileges;
查看并关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
再重新用navicate 连接
安装DolphinScheduler
准备 DolphinScheduler 启动环境
以root用户登录,创建dolphinscheduler用户
# 创建用户需使用 root 登录
useradd dolphinscheduler# 添加密码
echo "dolphinscheduler" | passwd --stdin dolphinscheduler# 配置 sudo 免密
sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers
sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers
# 将apache-dolphinscheduler-3.1.2-bin解压到/home/dolphinscheduler目录下
cd /home/dolphinscheduler/
tar zxvf apache-dolphinscheduler-3.1.2-bin.tar.gz
# 修改目录权限,使得部署用户对二进制包解压后的 apache-dolphinscheduler-*-bin 目录有操作权限
chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-3.1.2-bin
#查看一下权限
ll apache-dolphinscheduler-3.1.2-bin
如图:



注:解压的 DolphinScheduler包在/home/dolphinscheduler目录下。
切到这个用户下来cd apache-dolphinscheduler-3.1.2-bin
cd apache-dolphinscheduler-3.1.2-bin
切换到dolphinscheduler用户,然后再配置SSH免密登录:
su - dolphinscheduler
cd apache-dolphinscheduler-3.1.2-bin/

找一下mysql
find -name dolphinscheduler_mysql.sql
然后创建一个数据库dolphinscheduler 的UFT-8
导入dolphinscheduler_mysql.sql
修改 install_env.sh
vim bin/env/install_env.sh
地址路径:/home/dolphinscheduler/dolphinscheduler


#看下java在哪
echo $JAVA_HOME

vi ./bin/env/dolphinscheduler_env.sh
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://ds1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8"
export SPRING_DATASOURCE_USERNAME="root"
export SPRING_DATASOURCE_PASSWORD="123456"

下载mysql驱动包,下载地址
mysql驱动下载地址
如图:

下载后文件名:mysql-connector-java-8.0.28.jar
复制到
cp mysql-connector-java-8.0.28.jar ./api-server/libs/
cp mysql-connector-java-8.0.28.jar ./alert-server/libs/
cp mysql-connector-java-8.0.28.jar ./master-server/libs/
cp mysql-connector-java-8.0.28.jar ./worker-server/libs/
配置机器SSH免密登陆
su dolphinscheduler
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
如图:

配置完成后,可以执行如下命令验证:
ssh localhost
如图:

注意:
因为任务执行服务是以 sudo -u {linux-user} 切换不同 linux 用户的方式来实现多租户运行作业,所以部署用户需要有 sudo 权限,而且是免密的。初学习者不理解的话,完全可以暂时忽略这一点
如果发现 /etc/sudoers 文件中有 "Defaults requirett" 这行,也请注释掉
#改一下域名映射
vim /etc/hosts

一键部署启动
su dolphinscheduler
cd /home/dolphinscheduler/apache-dolphinscheduler-3.1.2-bin/
bash ./bin/install.sh
启动成功后,如图:

查看服务情况:

如果未启动成功:
cd /home/dolphinscheduler/pseudo-dolphinscheduler/logs
vi dolphinscheduler-master-server-docker-01.out
日志内容:
nohup: failed to run command ‘/root/jdk/jdk1.8.0_361/bin/java’: Permission denied
使用如下授权的方式,未解决
sudo chmod -R 755 /root/jdk/jdk1.8.0_361
sudo chown -R dolphinscheduler /root/jdk/jdk1.8.0_361
然后将jdk移到/usr/local目录即可。
mv /root/jdk /usr/local
启停服务
# 一键停止集群所有服务
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
登录 DolphinScheduler
192.168.174.130:12345/dolphinscheduler/ui
修改相关配置
完成了基础环境的准备后,在运行部署命令前,还需要根据环境修改配置文件。配置文件在路径在conf/config/install_config.conf下,一般部署只需要修改INSTALL MACHINE、DolphinScheduler ENV、Database、Registry Server部分即可完成部署,下面对必须修改参数进行说明
如图:
打开配置文件install_config.conf,修改配置为:
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# 因为是在单节点上部署master、worker、API server,所以服务器的IP均为机器IP或者localhost
ips="192.168.189.111"
masters="192.168.189.111"
workers="192.168.189.111:default"
alertServer="192.168.189.111"
apiServers="192.168.189.111"
pythonGatewayServers="192.168.189.111"# DolphinScheduler安装路径,如果不存在会创建
installPath="/home/dolphinscheduler/pseudo-dolphinscheduler"# 部署用户,填写在 **配置用户免密及权限** 中创建的用户
deployUser="dolphinscheduler"# ---------------------------------------------------------
# DolphinScheduler ENV
# ---------------------------------------------------------
# JAVA_HOME 的路径,是在 **前置准备工作** 安装的JDK中 JAVA_HOME 所在的位置
javaHome="/root/jdk/jdk1.8.0_361"# ---------------------------------------------------------
# Database
# ---------------------------------------------------------
# 数据库的类型,用户名,密码,IP,端口,元数据库db。其中 DATABASE_TYPE 目前支持 mysql, postgresql, H2
# 请确保配置的值使用双引号引用,否则配置可能不生效
DATABASE_TYPE="mysql"
SPRING_DATASOURCE_URL="jdbc:mysql://192.168.189.1:3306/ds_201_doc?useUnicode=true&characterEncoding=UTF-8"
# 如果你不是以 dolphinscheduler/dolphinscheduler 作为用户名和密码的,需要进行修改
SPRING_DATASOURCE_USERNAME="admin"
SPRING_DATASOURCE_PASSWORD="admin"# ---------------------------------------------------------
# Registry Server
# ---------------------------------------------------------
# 注册中心地址,zookeeper服务的地址
registryServers="192.168.189.111:2181"
初始化数据库
下载mysql驱动包,下载地址
mysql驱动下载地址
如图:

下载后文件名:mysql-connector-j-8.0.31-1.el7.noarch.rpm
上传到Linux上,执行如下命令安装:
rpm -ivh mysql-connector-j-8.0.31-1.el7.noarch.rpm
生成的jar包路径如下:
/usr/share/java/mysql-connector-j.jar
将jar包拷贝到lib目录下:
mv /usr/share/java/mysql-connector-j.jar /root/apache-dolphinscheduler-2.0.6-bin/lib/
登录mysql,创建dolphinscheduler数据库,并授予权限:
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'admin'@'%';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'admin'@'localhost';
flush privileges;
执行sql脚本:
sh script/create-dolphinscheduler.sh
如图:

成功后,如图:

启动 DolphinScheduler
切换到用户dolphinscheduler,如下:
su dolphinscheduler
如图:

sh install.sh
如图:

启动成功后,如图:

查看服务情况:

如果未启动成功:
cd /home/dolphinscheduler/pseudo-dolphinscheduler/logs
vi dolphinscheduler-master-server-docker-01.out
日志内容:
nohup: failed to run command ‘/root/jdk/jdk1.8.0_361/bin/java’: Permission denied
使用如下授权的方式,未解决
sudo chmod -R 755 /root/jdk/jdk1.8.0_361
sudo chown -R dolphinscheduler /root/jdk/jdk1.8.0_361
然后将jdk移到/usr/local目录即可。
mv /root/jdk /usr/local
登录 DolphinScheduler
同单机部署。
启停服务
# 一键停止集群所有服务
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
集群部署(Cluster)
待补充。
Measure
Measure

