【
Apache DolphinScheduler 3.0.0 升级到 3.1.8 教程
可参考下方的帖子
搜索很多教程,都是基于DolphinScheduler 3.0版本之前的安装教程,已不适用3.0版本。参考官方部署安装说明,我将我的安装过程,以图文的形式呈现,希望能给大家一些启发。
以三台机器为例,集群化安装部署
参考的官方文档
伪集群部署https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/installation/pseudo-cluster.html集群部署(Cluster)
https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/installation/cluster.html数据源配置
https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/howto/datasource-setting.html
集群规划
服务器 | 安装的组件 |
test01 | Master, Worker, API, Alert |
test02 | Master, Worker, API |
test03 | Master, Worker |
前置条件准备
JDK(JDK安装过程不赘述)
数据库:MySQL(MySQL 8安装过程不赘述)
DolphinScheduler 二进制包
zookeeper
解压缩DolphinScheduler 二进制包
#mkdir -p /opt/dolphinscheduler
# tar zxvf /XXXX/apache-dolphinscheduler-3.0.0-bin.tar.gz -C /opt/dolphinscheduler/
在集群所有节点修改/etc/profile配置文件,添加JDK环境变量
#vi /etc/profile
在配置文件末尾添加JAVA环境变量(若已经配置,可忽略)
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar:$CLASSPATH
立即生效
#source /etc/profile
系统添加一个dolphinscheduler用户
创建部署用户,并且一定要配置 sudo
免密。以创建 dolphinscheduler 用户为例
创建用户需使用 root 登录
# useradd dolphinscheduler
添加密码(具体密码自行设置,如下是伪代码)
# echo "XXXXXXXXX" | 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-*-bin 目录有操作权限
# chown -R dolphinscheduler:dolphinscheduler /opt/dolphinscheduler/apache-dolphinscheduler-*-bin
配置机器SSH免密登陆
修改集群hosts文件的过程不赘述
# su - dolphinscheduler
生成公钥和私钥:
$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将dolphinscheduler用户/home/dolphinscheduler/.ssh目录下的公钥文件内容添加到authorized_keys文件中,并修改文件权限为600
$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$chmod 600 ~/.ssh/authorized_keys
$ll ~/.ssh/authorized_keys
将公钥拷贝到要免密登录的目标机器上(三台机器)
$ssh-copy-id test01
$ssh-copy-id test02
$ssh-copy-id test03
启动zookeeper
本人集群使用CDH管理,此过程可忽略,自建的HDFS大数据系统,请参考相应Zookeeper启动方法,此处不过多赘述
修改相关配置
根据你的机器环境修改配置文件。配置文件可以在安装目录 bin/env
中找到,他们分别是 并命名为 install_env.sh
和 dolphinscheduler_env.sh
。
修改 install_env.sh
文件
文件 install_env.sh 描述了哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。
引用官方的说明
# --------------------------------------------------------- # INSTALL MACHINE # --------------------------------------------------------- # 需要配置master、worker、API server,所在服务器的IP均为机器IP或者localhost # 如果是配置hostname的话,需要保证机器间可以通过hostname相互链接 # 如下图所示,部署 DolphinScheduler 机器的 hostname 为 ds1,ds2,ds3,ds4,ds5,其中 ds1,ds2 安装 master 服务,ds3,ds4,ds5安装 worker 服务,alert server安装在ds4中,api server 安装在ds5中
ips="ds1,ds2,ds3,ds4,ds5"
masters="ds1,ds2"
workers="ds3:default,ds4:default,ds5:default"
alertServer="ds4"
apiServers="ds5"
本机的规划
服务器 | 安装的组件 |
test01 | Master, Worker, API, Alert |
test02 | Master, Worker, API |
test03 | Master, Worker |
本地install_env.sh脚本配置项修改如下
# su - dolphinscheduler
$ cd /opt/dolphinscheduler/apache-dolphinscheduler-3.0.0-bin/bin/env
$ vim install_env.sh
ips="test01,test02,test03"
masters="test01,test02,test03"
workers="test01:default,test02:default,test03:default"
alertServer="test01"
apiServers="test01,test02"
修改 dolphinscheduler_env.sh
文件
dolphinscheduler_env.sh
描述了下列配置:
- DolphinScheduler 的数据库配置,详细配置方法见初始化数据库
- 一些任务类型外部依赖路径或库文件,如
JAVA_HOME
和SPARK_HOME
都是在这里定义的 - 注册中心
zookeeper
- 服务端相关配置,比如缓存,时区设置等
如果您不使用某些任务类型,您可以忽略任务外部依赖项,但您必须根据您的环境更改 JAVA_HOME
、注册中心和数据库相关配置。
引用官方的说明
本地dolphinscheduler_env.sh脚本配置项修改如下
$ cd /opt/dolphinscheduler/apache-dolphinscheduler-3.0.0-bin/bin/env
$ vi dolphinscheduler_env.sh
export JAVA_HOME=${JAVA_HOME:-/usr/java/jdk1.8.0_341}
# Database related configuration, set database type, username and password
#export DATABASE=${DATABASE:-postgresql}
#export SPRING_PROFILES_ACTIVE=${DATABASE}
#export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler"
#export SPRING_DATASOURCE_USERNAME={user}
#export SPRING_DATASOURCE_PASSWORD={password}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-XXXXX:2181}
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://XXXXX:3306/XXXX?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true"
export SPRING_DATASOURCE_USERNAME=dolphinscheduler
export SPRING_DATASOURCE_PASSWORD=XXXXXXX
配置项说明
①修改本地的JAVA_HOME地址
②REGISTRY_ZOOKEEPER_CONNECT_STRING,填写自己集群的zookeeper地址
③本人使用的是MySQL8,所以把有关postgresql部分注释
④Mysql配置项,需要修改SPRING_DATASOURCE_URL、SPRING_DATASOURCE_USERNAME、SPRING_DATASOURCE_PASSWORD
其中原先的USERNAME={user}、PASSWORD={password}建议删掉{},即USERNAME=dolphinscheduler,PASSWORD=XXXXXXX
此外,SPRING_DATASOURCE_URL,增加了allowPublicKeyRetrieval=true (以免出现Public Key Retrieval is not allowed报错)
初始化DolphinScheduler数据库
将mysql-connector的jar包(8.0.16)移动到 DolphinScheduler 的每个模块的 libs 目录下 其中包括 api-server/libs/ 和 alert-server/libs 和 master-server/libs 和 worker-server/libs 和 tools/libs
【本人本地mysql-connector的jar包版本是8.0.30,可用】
$cp /usr/share/java/mysql-connector-java.jar /opt/dolphinscheduler/apache-dolphinscheduler-3.0.0-bin/api-server/libs/
$cp /usr/share/java/mysql-connector-java.jar /opt/dolphinscheduler/apache-dolphinscheduler-3.0.0-bin/alert-server/libs
$cp /usr/share/java/mysql-connector-java.jar /opt/dolphinscheduler/apache-dolphinscheduler-3.0.0-bin/master-server/libs
$cp /usr/share/java/mysql-connector-java.jar /opt/dolphinscheduler/apache-dolphinscheduler-3.0.0-bin/worker-server/libs
$cp /usr/share/java/mysql-connector-java.jar /opt/dolphinscheduler/apache-dolphinscheduler-3.0.0-bin/tools/libs
创建MySQL(mysql 8)的dolphinscheduler用户
# mysql -uroot -p
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT
用户名{user}和密码{password},本人指定的就是dolphinscheduler用户,用户密码自己定
mysql> CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'XXXX';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
mysql> CREATE USER 'dolphinscheduler'@'localhost' IDENTIFIED BY 'XXXXXX';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'localhost';
通过快速的 Shell 脚本来初始化数据库
$cd /opt/dolphinscheduler/apache-dolphinscheduler-3.0.0-bin/tools/bin
$sh upgrade-schema.sh
启动 DolphinScheduler
$ cd /opt/dolphinscheduler/apache-dolphinscheduler-3.0.0-bin/bin/
$ sh install.sh