DolphinScheduler安装配置教程(超级详细)
一、安装前准备
1、下载DolphinScheduler
下载地址:https://dolphinscheduler.apache.org/zh-cn/download/
2、集群部署规划
集群模式下,Master及Worker至少各2个节点(例:192.168.0.1、192.168.0.2)
3、资源准备
1)、操作系统:linux CentOS 7.9
2)、安装包:apache-dolphinscheduler-3.1.9-bin.tar.gz
3)、JDK:配置Java环境,推荐使用jdk8+
4)、数据库:MySQL5.7+版本(我用的是MySQL8.0.40)
5)、数据库连接驱动:mysql-connector-java-8.0.16.jar
6)、注册中心:zookeeper3.4.6+版本(我用的是3.6.3)
7)、其他环境配置:Python、DataX、Minio、Kettle
二、安装步骤
1、创建用户
#创建用户
sudo useradd dolphinscheduler
#设置密码
sudo echo "dolphinscheduler" | passwd --stdin dolphinscheduler
#配置sudo免密
sudo sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers
sudo sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers
2、SSH免密登录
注:集群模式需要操作,单机及伪集群模式部署不需要执行此步骤
#切换到dolphinscheduler用户
su dolphinscheduler
#配置服务器之间SSH免密登录(安装时需要发送资源至其他Master/Worker节点)
#如果你在192.168.0.1这台服务器上面安装的,那就要向192.168.0.2发送资源,如果有更多服务器就执行更多行命令即可
ssh-copy-id 192.168.0.2
#ssh-copy-id 192.168.0.3
3、创建数据库
#登录到MySQL服务中
mysql -uroot -p
#创建用户和密码,用户名:dolphinscheduler 密码:123456
CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY '123456';
#创建数据库,库名:dolphinscheduler
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
#授权
grant all privileges on dolphinscheduler.* to 'dolphinscheduler'@'%';
#刷新权限
flush privileges;
4、解压安装包
#解压
tar -zxvf apache-dolphinscheduler-3.1.9-bin.tar.gz
#重命名
mv apache-dolphinscheduler-3.1.9-bin apache-dolphinscheduler
#赋权
sudo chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler
5、添加MySQL驱动
#拷贝MySQL连接驱动至dolphinscheduler的各个模块中
#注意需要用创建的dolphinscheduler用户来执行
#进入安装路径
cd apache-dolphinscheduler
#拷贝mysql-connector-java-8.0.16.jar至每个模块的libs目录下,
#其中包括api-server/libs和alert-server/libs和master-server/libs和worker-server/libs和tools/libs
cp /mysql-connector-java-8.0.16.jar api-server/libs/
cp /mysql-connector-java-8.0.16.jar alert-server/libs/
cp /mysql-connector-java-8.0.16.jar master-server/libs/
cp /mysql-connector-java-8.0.16.jar worker-server/libs/
cp /mysql-connector-java-8.0.16.jar tools/libs/
6、修改dolphinscheduler_env.sh配置
#文件位置:bin/env/dolphinscheduler_env.sh
#这个启动文件bin/start-all.sh,会将bin/env/dolphinscheduler_env.sh的配置信息下发到其他server中
#所以修改bin/env/dolphinscheduler_env.sh这个配置文件是一个快速搭建的方式
#注意需要用创建的dolphinscheduler用户来执行
vi bin/env/dolphinscheduler_env.sh##【必须】修改JDK安装路径
export JAVA_HOME=${JAVA_HOME:-/tools/jdk1.8}##【必须】修改MySQL连接信息
# Database related configuration, set database type, username and password
export DATABASE=mysql
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://localhost:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME="dolphinscheduler"
export SPRING_DATASOURCE_PASSWORD="123456"# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}##【必须】zookeeper是DolphinScheduler的注册中心
# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-localhost:2181}
#集群这样配
#export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-192.168.0.1:2181,192.168.0.2:2181}##【非必须】以下配置项是非必须的,可以保持默认不变,没有相应环境时,dolphinscheduler可以正常运行
##【非必须】我这里配置了Python、DataX、Kettle等环境# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
export SPARK_HOME1=${SPARK_HOME1:-/opt/soft/spark1}
export SPARK_HOME2=${SPARK_HOME2:-/opt/soft/spark2}
export PYTHON_HOME=${PYTHON_HOME:-/usr/bin/python}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_HOME=${DATAX_HOME:-/tools/datax/datax}
export SEATUNNEL_HOME=${SEATUNNEL_HOME:-/opt/soft/seatunnel}
export CHUNJUN_HOME=${CHUNJUN_HOME:-/opt/soft/chunjun}
export KETTLE_HOME=${KETTLE_HOME:-/tools/data-integration-9.3}export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$SEATUNNEL_HOME/bin:$CHUNJUN_HOME/bin:$PATH
7、初始化元数据
#在配置好MySQL连接信息之后,才能初始化元数据
#DolphinScheduler有可执行脚本供初始化元数据
#注意需要用创建的dolphinscheduler用户来执行
./tools/bin/upgrade-schema.sh
初始化元数据之后,dolphinscheduler数据库中会自动创建相应的表
8、修改install_env.sh配置
#修改安装配置文件
#注意需要用创建的dolphinscheduler用户来执行
vi bin/env/install_env.sh#服务器的IP地址
#ips=${ips:-"ds1,ds2,ds3,ds4,ds5"}
ips=${ips:-"192.168.0.1,192.168.0.2"}sshPort=${sshPort:-"22"}##【重点】如果是伪集群部署,就按如下配置即可(所有的服务节点均部署在同一台服务器上)
##【重点】集群部署,配置多个IP即可#Master服务节点信息
masters=${masters:-"192.168.0.1"}
#集群部署
#masters=${masters:-"192.168.0.1,192.168.0.2"}#Worker服务节点信息
workers=${workers:-"192.168.0.1:default"}
#集群部署
#workers=${workers:-"192.168.0.1:default,192.168.0.2:default"}#Alert服务节点信息
alertServer=${alertServer:-"192.168.0.1"}
#集群部署
#alertServer=${alertServer:-"192.168.0.1,192.168.0.2"}#Api服务节点信息
apiServers=${apiServers:-"192.168.0.1"}
#集群部署
#apiServers=${apiServers:-"192.168.0.1,192.168.0.2"}#安装路径
installPath=${installPath:-"/tools/apache-dolphinscheduler"}#创建的用户
deployUser=${deployUser:-"dolphinscheduler"}zkRoot=${zkRoot:-"/dolphinscheduler"}
9、安装DolphinScheduler
#DolphinScheduler提供了安装脚本,直接执行即可
#注意需要用创建的dolphinscheduler用户来执行
./bin/install.sh
10、启停命令
#DolphinScheduler提供有停止所有服务和启动所有服务的脚本
#建议通过这两个脚本执行服务的启停
#注意需要用创建的dolphinscheduler用户来执行
#停止所有服务
./bin/stop-all.sh
#启动所有服务
./bin/start-all.sh
11、UI界面访问
访问地址:http://192.168.0.1:12345/dolphinscheduler/ui
默认账/密:admin/dolphinscheduler123
三、环境配置
1、Python2.7环境安装
#1、安装依赖库
sudo yum -y install python-devel openssl openssl-devel gcc sqlite sqlite-devel mysql-devel libxml2-devel libxslt-devel#2、下载安装包
wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz#3、解压
tar -zxf Python-2.7.13.tgz#4、进入目录
cd python2.7#5、编译安装
sudo ./configure --prefix=/tools/python2.7 --with-threads --enable-shared
sudo make && make altinstall#6、备份旧文件
mv /usr/bin/pip /usr/bin/pip_old
mv /usr/bin/easy_install /usr/bin/easy_install_old
mv /usr/bin/python /usr/bin/python_old#7、创建软连接
sudo ln -s /tools/python2.7/lib/libpython2.7.so /usr/lib
sudo ln -s /tools/python2.7/lib/libpython2.7.so.1.0 /usr/lib
sudo ln -s /tools/python2.7/bin/python2.7 /usr/bin/python
sudo ln -s /tools/python2.7/lib/libpython2.7.so /usr/lib64
sudo ln -s /tools/python2.7/lib/libpython2.7.so.1.0 /usr/lib64#8、测试是否可用
pythonPython 2.7.13 (default, Aug 25 2025, 11:14:36)[GCC 4.8.5 20120313 (Red Hat 4.8.5-44)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>>
2、DataX环境安装
#下载安装包
wget https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz#解压到tools文件夹中
tar -zxvf datax.tar.gz -C /tools/#进入安装目录
cd datax#验证脚本
python bin/datax.py job/job.json
3、Kettle环境安装
#下载地址
https://sourceforge.net/projects/pentaho/files/#点击 “Download Latest Version”#下载下来是一个pdf文件#打开pdf文件,点击Developer Edition Dowbload#界面上填入个人信息之后,点击“Submit Request”,弹框后查看下载列表#选择pdi-ce-10.2.0.0-222.zip,点击Download
4、资源中心配置
#1、修改api-server和worker-server的配置文件
#注意需要用创建的dolphinscheduler用户来执行
vi api-server/conf/common.properties#本地存储路径,需要创建好路径,并且dolphinscheduler用户要有读写权限
data.basedir.path=/tools/apache-dolphinscheduler/data
#自行安装的minio文件服务这里选择S3
resource.storage.type=S3
#minio文件服务上面存放文件的前缀路径
resource.storage.upload.base.path=/dolphinscheduler
#minio文件服务的用户名
resource.aws.access.key.id=minioadmin
#minio文件服务的密码
resource.aws.secret.access.key=123456
#不修改
resource.aws.region=cn-north-1
#minio文件服务的桶名称
##【注意】这个桶路径需提前在minio文件服务中创建好,否则api-server启动会失败
resource.aws.s3.bucket.name=dolphinscheduler
#minio文件服务的连接方式
resource.aws.s3.endpoint=http://localhost:9000#内容跟api-server的配置文件内容一致
vi worker-server/conf/common.properties#本地存储路径,需要创建好路径,并且dolphinscheduler用户要有读写权限
data.basedir.path=/tools/apache-dolphinscheduler/data
#自行安装的minio文件服务这里选择S3
resource.storage.type=S3
#minio文件服务上面存放文件的前缀路径
resource.storage.upload.base.path=/dolphinscheduler
#minio文件服务的用户名
resource.aws.access.key.id=minioadmin
#minio文件服务的密码
resource.aws.secret.access.key=123456
#不修改
resource.aws.region=cn-north-1
#minio文件服务的桶名称
##【注意】这个桶路径需提前在minio文件服务中创建好,否则worker-server启动会失败
resource.aws.s3.bucket.name=dolphinscheduler
#minio文件服务的连接方式
resource.aws.s3.endpoint=http://localhost:9000