DolphinScheduler以2.0.6版本为例。
参考文档:部署文档
部署规划
单机部署
主机IP | 主机名 | 部署服务 |
192.168.189.111 | docker-01 | JDK、DolphinScheduler |
伪集群部署
主机IP | 主机名 | 部署服务 |
192.168.189.111 | docker-01 | JDK、DolphinScheduler、ZooKeeper、psmisc |
192.168.189.1 | MySQL(用户名/密码:admin/admin) |
集群部署
主机IP | 主机名 | 部署服务 |
192.168.189.111 | docker-01 | JDK、DolphinScheduler、MySQL、ZooKeeper、psmisc |
192.168.189.112 | ||
192.168.189.113 |
单机部署(Standalone)
安装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
下载
如图,点击查看更多
选择对应版本,这里选择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
进程树分析
macOS安装pstree
Fedora/Red/Hat/CentOS/Ubuntu/Debian安装psmisc
安装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。
安装MySQL
略。
安装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-2.0.6-bin解压到/home/dolphinscheduler目录下
# 修改目录权限,使得部署用户对二进制包解压后的 apache-dolphinscheduler-*-bin 目录有操作权限
chown -R dolphinscheduler:dolphinscheduler /home/dolphinscheduler/apache-dolphinscheduler-2.0.6-bin
如图:
注:解压的 DolphinScheduler包在/home/dolphinscheduler目录下。
配置机器SSH免密登陆
切换到dolphinscheduler用户,然后再配置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" 这行,也请注释掉
修改相关配置
完成了基础环境的准备后,在运行部署命令前,还需要根据环境修改配置文件。配置文件在路径在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-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)
待补充。