普元数据开发平台 普元数据开发平台
产品介绍
安装部署
快速入门
操作指南
FAQ
  • DolphinScheduler安装指南
  • 1. 解压
  • 2.修改目录权限
  • 3. 修改配置文件
  • 3.1 修改 bin/env/install_env.sh 文件
  • 3.2 修改 bin/env/dolphinscheduler_env.sh 文件
  • 3.3 修改 master-server/conf/application.yaml
  • 3.4 dolphin需要连接非本机的zookeeper,且zookeeper有多个dolphin连接
  • 4. 对接分布式或远端对象存储(可选配置)
  • 5. 初始化数据库
  • 6. 配置/etc/hosts
  • 7. 安装启动
  • 8.查看状态
  • 9. 服务启停
  • 附端口号

# DolphinScheduler安装指南

DolphinScheduler 介质说明

apache-dolphinscheduler-3.2.1-bin.tar.gz  
  ├── alert-server	 #告警服务
  ├── api-server		 #web console
  ├── bin			     #配置相关环境变量信息、数据库连接信息等
  ├── LICENSE
  ├── licenses
  ├── master-server	 #master server负责作业定时调度以及任务下发,可横向扩容
  ├── NOTICE
  ├── standalone-server
  ├── tools            #初始化脚本
  ├── ui
  └── worker-server    #worker server任务执⾏节点资源,可横向扩容

安装前准备及注意事项:

  • 请确保机器已配置 JDK 1.8.0_251 及以上

  • 已创建免密用户、配置用户免密及权限,参考 DWS部署前准备

  • 安装进程树分析命令

    • macOS安装pstree

    • Fedora/Red/Hat/CentOS/Ubuntu/Debian安装psmisc

      yum install psmisc
      
  • 注意:

    因为任务执行服务是以 sudo -u {linux-user} 切换不同 linux 用户的方式来实现多租户运行作业,所以部署用户需要有 sudo 权限。

# 1. 解压

tar -zxvf apache-dolphinscheduler-3.2.1-bin.tar.gz

# 2.修改目录权限

使用户对二进制包解压后的apache-dolphinscheduler-*-bin 目录有操作权限

chown -R dws:dws apache-dolphinscheduler-3.2.1-bin

# 3. 修改配置文件

# 3.1 修改 bin/env/install_env.sh 文件

install_env.sh 描述了哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。

  • 单节点部署时,修改如下信息

    ips=${ips:-"192.168.16.80"}
    sshPort=${sshPort:-"22"}
    masters=${masters:-"192.168.16.80"}
    workers=${workers:-"192.168.16.80:default"}
    alertServer=${alertServer:-"192.168.16.80"}
    apiServers=${apiServers:-"192.168.16.80"}
    #配置dolphinscheduler安装路径,在bin/install.sh运行后会安装dolphinscheduler到该目录下
    installPath=${installPath:-"/home/dws/install_home"} 
    #部署用户,即配置的免密用户
    deployUser=${deployUser:-"dws"}
    #与application.yaml中的namespace一致
    zkRoot=${zkRoot:-"/dws"}
    

    image-20240125100105795

  • 集群部署时,修改如下信息

⚠️ 提示:集群部署时,请提前配置集群机器SSH免密登录及集群系统时间同步

ips=${ips:-"192.168.16.74,192.168.16.75,192.168.16.76"}
sshPort=${sshPort:-"22"}
masters=${masters:-"192.168.16.74,192.168.16.75,192.168.16.76"}
workers=${workers:-"192.168.16.74:default,192.168.16.75:default,192.168.16.76:default"}
alertServer=${alertServer:-"192.168.16.76"}
apiServers=${apiServers:-"192.168.16.75"}

#配置dolphinscheduler安装路径,在bin/install.sh运行后会安装dolphinscheduler到该目录下
installPath=${installPath:-"/home/dws/install_home"}

#部署用户,即配置的免密用户
deployUser=${deployUser:-"dws"}
#与application.yaml中的namespace一致
zkRoot=${zkRoot:-"/dws"}

image-20240125100604726

# 3.2 修改 bin/env/dolphinscheduler_env.sh 文件

dolphinscheduler_env.sh 描述了下列配置:

  • DolphinScheduler 的数据库配置,详细配置方法见初始化数据库
  • 一些任务类型外部依赖路径或库文件,如 JAVA_HOME 和 SPARK_HOME都是在这里定义的
  • 注册中心zookeeper
  • 服务端相关配置,比如缓存,时区设置等
#修改JAVA_HOME、DATABASE
export JAVA_HOME=${JAVA_HOME:-/opt/jdk1.8.0_251}

#参数值使用对应的数据库,mysql、postgresql、Oracle、gaussDB、DM
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}

# 配置数据库信息
export SPRING_DATASOURCE_URL="jdbc:mysql://192.168.16.142:23306/dolphin_80?serverTimezone=Asia/Shanghai&useSSL=false"
export SPRING_DATASOURCE_USERNAME="root"
export SPRING_DATASOURCE_PASSWORD="primeton"

#配置Zookeeper信息
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-192.168.16.80:2181}
#修改FLINK_HOME路径
export FLINK_HOME=${FLINK_HOME:-/home/flink/flink-1.15.4}
#修改SEATUNNEL_HOME路径
export SEATUNNEL_HOME=${SEATUNNEL_HOME:-/home/seatunnel/apache-seatunnel-2.3.4}

#增加DI Server部署路径
export PDI_HOME=${PDI_HOME:-/home/DI/Primeton_DI_7.0.0_Server/diserver}

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:$PDI_HOME:$PATH

若使用PostgreSQL数据库,SPRING_DATASOURCE_URL参数中的url需要配置参数:stringtype=unspecified。否则运行作业时会报错,参考如下配置

#数据库使用PostgreSQL时的配置
export SPRING_DATASOURCE_URL="jdbc:postgresql://192.168.16.86:5432/dolphin_dev?stringtype=unspecified"

⚠️ 注:若未使用到flink,FLINK_HOME路径可不用修改,使用默认即可。若使用到flink,请自行下载flink程序,并根据实际配置FLINK_HOME路径。

image-20240314145823708

若需要配置zookeeper集群地址,则多个地址使用,分隔。例如

#export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-zk1:2181,zk2:2181,zk3:2181}

# 3.3 修改 master-server/conf/application.yaml

  1. 修改org.quartz.scheduler.instanceName参数值

    spring:
      quartz:
        properties:
          org.quartz.scheduler.instanceName: DolphinScheduler
    
    • 同一套集群内,instanceName需保持一致
    • 注册调度引擎时,引擎编码需同instanceName配置的属性值保持一致
  2. 修改on-profile和driver-class-name参数值

    on-profile值修改为3.2修改 bin/env/dolphinscheduler_env.sh 文件中 export DATABASE=${DATABASE:-mysql}的值,如mysql

    driver-class-name值修改为对应数据库的驱动。

    image-20240314160353390

  3. 若使用的数据库是PostgreSQL和openGauss ,修改org.quartz.jobStore.driverDelegateClass参数值

    quartz:
      properties:
       org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.PostgreSQLDelegate  
        #默认值为org.quartz.impl.jdbcjobstore.StdJDBCDelegate
    

​ image-20240314160607910

  1. 若使用的数据库是Oracle ,需要修改master-server、worker-server、alert-server、api-server安装目录下conf/application.yaml,将connection-test-query的值修改为select 1 from dual

    image-20240314161540279

# 3.4 dolphin需要连接非本机的zookeeper,且zookeeper有多个dolphin连接

修改/home/dws/apache-dolphinscheduler-3.2.1-bin/master-server、worker-server、 api-server/conf/application.yaml中zookeeper的连接IP地址 、namespace需要和其他dolphin组件中的不冲突

image-20240301145326

# 4. 对接分布式或远端对象存储(可选配置)

如果用户需要使用大数据环境,则需进行此配置

4.1. 分别在api-server、worker-server的配置文件中设置远端对象存储环境,如HDFS

dolphinshceduler standalone版修改standalone-server/conf/common.properties文件

vi api-server/conf/common.properties
vi worker-server/conf/common.properties
# user data local directory path, please make sure the directory exists and have read write permissions
data.basedir.path=/home/dws

# resource storage type: HDFS, S3, OSS, NONE
resource.storage.type=HDFS
# resource store on HDFS/S3 path, resource file will store to this base path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended
resource.storage.upload.base.path=/dws

# if resource.storage.type=HDFS, the user must have the permission to create directories under the HDFS root path
resource.hdfs.root.user=hdfs
# if resource.storage.type=S3, the value like: s3a://dolphinscheduler; if resource.storage.type=HDFS and namenode HA is enabled, you need to copy core-site.xml and hdfs-site.xml to conf dir
resource.hdfs.fs.defaultFS=hdfs://mycluster:8020

image-20231127161300783

4.2. 将对应大数据环境的配置文件core-site.xml和hdfs-site.xml分别拷贝至worker-server/conf/和 api-server/conf/目录下。

dolphinshceduler standalone版将对应大数据环境的配置文件core-site.xml和hdfs-site.xml拷贝至standalone-server/conf目录下

# 5. 初始化数据库

使用tools/sql/sql/目录下对应的数据库脚本执行初始化。目前支持以下类型数据库:

达梦数据库脚本:dolphinscheduler_dm.sql
MySQL数据库脚本:dolphinscheduler_mysql.sql
openGauss数据库脚本:dolphinscheduler_openguass.sql
Oracle数据库脚本:dolphinscheduler_oracle.sql
PostgreSQL数据库脚本:dolphinscheduler_postgresql.sql

# 6. 配置/etc/hosts

此步骤必须执行,否则会导致zookeeper连接超时异常问题

在/etc/hosts中增加一行,添加服务器ip及域名(若zookeeper和dolphinscheduler不在同一台服务器,则/etc/hosts需要将zookeeper和dolphinscheduler所在服务器ip都配置域名)

vim /etc/hosts
192.168.16.80 server80

# 7. 安装启动

su - dws
./apache-dolphinscheduler-3.2.1-bin/bin/install.sh
#install.sh运行后会安装到bin/env/install_env.sh 文件中dolphinscheduler配置的目录下,并会启动dolphinscheduler

后续启停dolphinshceduler服务就在指定的安装目录下执行启停命令即可,如本示例中的安装目录为:/home/dws/install_home/

# 8.查看状态

su - dws
cd  /home/dws/install_home/
./bin/status-all.sh

image-20231227174832439

# 9. 服务启停

su - dws
cd  /home/dws/install_home/

# 一键停止单节点/集群所有服务
 ./bin/stop-all.sh

# 一键开启单节点/集群所有服务
 ./bin/start-all.sh

# 启停 Master
 ./bin/dolphinscheduler-daemon.sh stop master-server
 ./bin/dolphinscheduler-daemon.sh start master-server

# 启停 Worker
 ./bin/dolphinscheduler-daemon.sh start worker-server
 ./bin/dolphinscheduler-daemon.sh stop worker-server

# 启停 Api
 ./bin/dolphinscheduler-daemon.sh start api-server
 ./bin/dolphinscheduler-daemon.sh stop api-server

# 启停 Alert
 ./bin/dolphinscheduler-daemon.sh start alert-server
 ./bin/dolphinscheduler-daemon.sh stop alert-server

# 附端口号

master worker alert api
listen-port server-port listen-port server-port alert-port server-port server-port
5678 5679 1234 1235 50052 50053 12345

← Primeton DI Server安装指南 Nacos安装指南 →