【
可参考下方的帖子
搜索很多教程,都是基于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
- #mkdir -p /opt/dolphinscheduler
-
- # tar zxvf /XXXX/apache-dolphinscheduler-3.0.0-bin.tar.gz -C /opt/dolphinscheduler/
#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
创建部署用户,并且一定要配置 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
修改集群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
本人集群使用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
描述了下列配置:
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报错)
将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 -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';
- $cd /opt/dolphinscheduler/apache-dolphinscheduler-3.0.0-bin/tools/bin
- $sh upgrade-schema.sh
- $ cd /opt/dolphinscheduler/apache-dolphinscheduler-3.0.0-bin/bin/
- $ sh install.sh