前言

本文档为dolphinscheduler配置文件说明文档,针对版本为 dolphinscheduler-1.3.x 版本.

目录结构

目前dolphinscheduler 所有的配置文件都在 [conf ] 目录中.
为了更直观的了解[conf]目录所在的位置以及包含的配置文件,请查看下面dolphinscheduler安装目录的简化说明.
本文主要讲述dolphinscheduler的配置文件.其他部分先不做赘述.

[注:以下 dolphinscheduler 简称为DS.]


├─bin                               DS命令存放目录
│  ├─dolphinscheduler-daemon.sh         启动/关闭DS服务脚本
│  ├─start-all.sh                       根据配置文件启动所有DS服务
│  ├─stop-all.sh                        根据配置文件关闭所有DS服务
├─conf                              配置文件目录
│  ├─application-api.properties         api服务配置文件
│  ├─datasource.properties              数据库配置文件
│  ├─zookeeper.properties               zookeeper配置文件
│  ├─master.properties                  master服务配置文件
│  ├─worker.properties                  worker服务配置文件
│  ├─quartz.properties                  quartz服务配置文件
│  ├─common.properties                  公共服务[存储]配置文件
│  ├─alert.properties                   alert服务配置文件
│  ├─config                             环境变量配置文件夹
│      ├─install_config.conf                DS环境变量配置脚本[用于DS安装/启动]
│  ├─env                                运行脚本环境变量配置目录
│      ├─dolphinscheduler_env.sh            运行脚本加载环境变量配置文件[如: JAVA_HOME,HADOOP_HOME, HIVE_HOME ...]
│  ├─org                                mybatis mapper文件目录
│  ├─i18n                               i18n配置文件目录
│  ├─logback-api.xml                    api服务日志配置文件
│  ├─logback-master.xml                 master服务日志配置文件
│  ├─logback-worker.xml                 worker服务日志配置文件
│  ├─logback-alert.xml                  alert服务日志配置文件
├─sql                               DS的元数据创建升级sql文件
│  ├─create                             创建SQL脚本目录
│  ├─upgrade                            升级SQL脚本目录
│  ├─dolphinscheduler-postgre.sql       postgre数据库初始化脚本
│  ├─dolphinscheduler_mysql.sql         mysql数据库初始化版本
│  ├─soft_version                       当前DS版本标识文件
├─script                            DS服务部署,数据库创建/升级脚本目录
│  ├─create-dolphinscheduler.sh         DS数据库初始化脚本
│  ├─upgrade-dolphinscheduler.sh        DS数据库升级脚本
│  ├─monitor-server.sh                  DS服务监控启动脚本
│  ├─scp-hosts.sh                       安装文件传输脚本
│  ├─remove-zk-node.sh                  清理zookeeper缓存文件脚本
├─ui                                前端WEB资源目录
├─lib                               DS依赖的jar存放目录
├─install.sh                        自动安装DS服务脚本

配置文件详解

序号 服务分类 配置文件
1 启动/关闭DS服务脚本 dolphinscheduler-daemon.sh
2 数据库连接配置 datasource.properties
3 zookeeper连接配置 zookeeper.properties
4 公共[存储]配置 common.properties
5 API服务配置 application-api.properties
6 Master服务配置 master.properties
7 Worker服务配置 worker.properties
8 Alert 服务配置 alert.properties
9 Quartz配置 quartz.properties
10 DS环境变量配置脚本[用于DS安装/启动] install_config.conf
11 运行脚本加载环境变量配置文件
[如: JAVA_HOME,HADOOP_HOME, HIVE_HOME …
dolphinscheduler_env.sh
12 各服务日志配置文件 api服务日志配置文件 : logback-api.xml
master服务日志配置文件 : logback-master.xml
worker服务日志配置文件 : logback-worker.xml
alert服务日志配置文件 : logback-alert.xml

1.dolphinscheduler-daemon.sh [启动/关闭DS服务脚本]

dolphinscheduler-daemon.sh脚本负责DS的启动&关闭.
start-all.sh/stop-all.sh最终也是通过dolphinscheduler-daemon.sh对集群进行启动/关闭操作.
目前DS只是做了一个基本的设置,JVM参数请根据各自资源的实际情况自行设置.

默认简化参数如下:

export DOLPHINSCHEDULER_OPTS="
-server
-Xmx16g
-Xms1g
-Xss512k
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSInitiatingOccupancyFraction=70
"

不建议设置"-XX:DisableExplicitGC" , DS使用Netty进行通讯,设置该参数,可能会导致内存泄漏.

2.datasource.properties [数据库连接]

在DS中使用Druid对数据库连接进行管理,默认简化配置如下.

参数 默认值 描述
spring.datasource.driver-class-name 数据库驱动
spring.datasource.url 数据库连接地址
spring.datasource.username 数据库用户名
spring.datasource.password 数据库密码
spring.datasource.initialSize 5 初始连接池数量
spring.datasource.minIdle 5 最小连接池数量
spring.datasource.maxActive 5 最大连接池数量
spring.datasource.maxWait 60000 最大等待时长
spring.datasource.timeBetweenEvictionRunsMillis 60000 连接检测周期
spring.datasource.timeBetweenConnectErrorMillis 60000 重试间隔
spring.datasource.minEvictableIdleTimeMillis 300000 连接保持空闲而不被驱逐的最小时间
spring.datasource.validationQuery SELECT 1 检测连接是否有效的sql
spring.datasource.validationQueryTimeout 3 检测连接是否有效的超时时间[seconds]
spring.datasource.testWhileIdle true 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
spring.datasource.testOnBorrow true 申请连接时执行validationQuery检测连接是否有效
spring.datasource.testOnReturn false 归还连接时执行validationQuery检测连接是否有效
spring.datasource.defaultAutoCommit true 是否开启自动提交
spring.datasource.keepAlive true 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。
spring.datasource.poolPreparedStatements true 开启PSCache
spring.datasource.maxPoolPreparedStatementPerConnectionSize 20 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。

3.zookeeper.properties [zookeeper连接配置]

参数 默认值 描述
zookeeper.quorum localhost:2181 zk集群连接信息
zookeeper.dolphinscheduler.root /dolphinscheduler DS在zookeeper存储根目录
zookeeper.session.timeout 60000 session 超时
zookeeper.connection.timeout 30000 连接超时
zookeeper.retry.base.sleep 100 基本重试时间差
zookeeper.retry.max.sleep 30000 最大重试时间
zookeeper.retry.maxtime 10 最大重试次数

4.common.properties [hadoop、s3、yarn配置]

common.properties配置文件目前主要是配置hadoop/s3a相关的配置.

参数 默认值 描述
resource.storage.type NONE 资源文件存储类型: HDFS,S3,NONE
resource.upload.path /dolphinscheduler 资源文件存储路径
data.basedir.path /tmp/dolphinscheduler 本地工作目录,用于存放临时文件
hadoop.security.authentication.startup.state false hadoop是否开启kerberos权限
java.security.krb5.conf.path /opt/krb5.conf kerberos配置目录
login.user.keytab.username hdfs-mycluster@ESZ.COM kerberos登录用户
login.user.keytab.path /opt/hdfs.headless.keytab kerberos登录用户keytab
resource.view.suffixs txt,log,sh,conf,cfg,py,java,sql,hql,xml,properties 资源中心支持的文件格式
hdfs.root.user hdfs 如果存储类型为HDFS,需要配置拥有对应操作权限的用户
fs.defaultFS hdfs://mycluster:8020 请求地址如果resource.storage.type=S3 ,该值类似为: s3a://dolphinscheduler. 如果resource.storage.type=HDFS, 如果 hadoop 配置了 HA ,需要复制core-site.xml 和 hdfs-site.xml 文件到conf目录
fs.s3a.endpoint s3 endpoint地址
fs.s3a.access.key s3 access key
fs.s3a.secret.key s3 secret key
yarn.resourcemanager.ha.rm.ids yarn resourcemanager 地址, 如果resourcemanager开启了HA, 输入HA的IP地址(以逗号分隔),如果resourcemanager为单节点, 该值为空即可.
yarn.application.status.address http://ds1:8088/ws/v1/cluster/apps/%s 如果resourcemanager开启了HA或者没有使用resourcemanager,保持默认值即可. 如果resourcemanager为单节点,你需要将ds1 配置为resourcemanager对应的hostname
dolphinscheduler.env.path env/dolphinscheduler_env.sh 运行脚本加载环境变量配置文件[如: JAVA_HOME,HADOOP_HOME, HIVE_HOME …]
development.state false 是否处于开发模式
kerberos.expire.time 7 kerberos过期时间 [小时]

5.application-api.properties [API服务配置]

参数 默认值 描述
server.port 12345 api服务通讯端口
server.servlet.session.timeout 7200 session超时时间
server.servlet.context-path /dolphinscheduler 请求路径
spring.servlet.multipart.max-file-size 1024MB 最大上传文件大小
spring.servlet.multipart.max-request-size 1024MB 最大请求大小
server.jetty.max-http-post-size 5000000 jetty服务最大发送请求大小
spring.messages.encoding UTF-8 请求编码
spring.jackson.time-zone GMT+8 设置时区
spring.messages.basename i18n/messages i18n配置
security.authentication.type PASSWORD 权限校验类型

6.master.properties [Master服务配置]

参数 默认值 描述
master.listen.port 5678 master通讯端口
master.exec.threads 100 工作线程数量
master.exec.task.num 20 并行任务数量
master.dispatch.task.num 3 分发任务数量
master.heartbeat.interval 10 心跳间隔
master.task.commit.retryTimes 5 任务重试次数
master.task.commit.interval 1000 任务提交间隔
master.max.cpuload.avg -1 cpu小于该配置时,master 服务才能工作.默认值为-1 : cpu cores * 2
master.reserved.memory 0.3 内存阈值限制,可用内存大于该值,master 服务才能工作.

7.worker.properties [Worker服务配置]

参数 默认值 描述
worker.listen.port 1234 worker通讯端口
worker.exec.threads 100 工作线程数量
worker.heartbeat.interval 10 心跳间隔
worker.max.cpuload.avg -1 cpu小于该配置时,worker 服务才能工作. 默认值为-1 : cpu cores * 2
worker.reserved.memory 0.3 内存阈值限制,可用内存大于该值,worker 服务才能工作.
worker.group default workgroup分组配置.
worker启动时会根据该配置自动加入对应的分组.

8.alert.properties [Alert 告警服务配置]

参数 默认值 描述
alert.type EMAIL 告警类型
mail.protocol SMTP 邮件服务器协议
mail.server.host xxx.xxx.com 邮件服务器地址
mail.server.port 25 邮件服务器端口
mail.sender xxx@xxx.com 发送人邮箱
mail.user xxx@xxx.com 发送人邮箱名称
mail.passwd 111111 发送人邮箱密码
mail.smtp.starttls.enable true 邮箱是否开启tls
mail.smtp.ssl.enable false 邮箱是否开启ssl
mail.smtp.ssl.trust xxx.xxx.com 邮箱ssl白名单
xls.file.path /tmp/xls 邮箱附件临时工作目录
以下为企业微信配置[选填]
enterprise.wechat.enable false 企业微信是否启用
enterprise.wechat.corp.id xxxxxxx
enterprise.wechat.secret xxxxxxx
enterprise.wechat.agent.id xxxxxxx
enterprise.wechat.users xxxxxxx
enterprise.wechat.token.url https://qyapi.weixin.qq.com/cgi-bin/gettoken?
corpid=KaTeX parse error: Expected 'EOF', got '&' at position 7: corpId&̲corpsecret=secret
enterprise.wechat.push.url https://qyapi.weixin.qq.com/cgi-bin/message/send?
access_token=$token
enterprise.wechat.user.send.msg 发送消息格式
enterprise.wechat.team.send.msg 群发消息格式
plugin.dir /Users/xx/your/path/to/plugin/dir 插件目录

9.quartz.properties [Quartz配置]

这里面主要是quartz配置,请结合实际业务场景&资源进行配置,本文暂时不做展开.

参数 默认值 描述
org.quartz.jobStore.driverDelegateClass org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.driverDelegateClass org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
org.quartz.scheduler.instanceName DolphinScheduler
org.quartz.scheduler.instanceId AUTO
org.quartz.scheduler.makeSchedulerThreadDaemon true
org.quartz.jobStore.useProperties false
org.quartz.threadPool.class org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.makeThreadsDaemons true
org.quartz.threadPool.threadCount 25
org.quartz.threadPool.threadPriority 5
org.quartz.jobStore.class org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.tablePrefix QRTZ_
org.quartz.jobStore.isClustered true
org.quartz.jobStore.misfireThreshold 60000
org.quartz.jobStore.clusterCheckinInterval 5000
org.quartz.jobStore.acquireTriggersWithinLock true
org.quartz.jobStore.dataSource myDs
org.quartz.dataSource.myDs.connectionProvider.class org.apache.dolphinscheduler.service.quartz.DruidConnectionProvider

10.install_config.conf [DS环境变量配置脚本[用于DS安装/启动]]

install_config.conf这个配置文件比较繁琐,这个文件主要有两个地方会用到.

  • 1.DS集群的自动安装.

调用install.sh脚本会自动加载该文件中的配置.并根据该文件中的内容自动配置上述的配置文件中的内容.
比如:dolphinscheduler-daemon.sh、datasource.properties、zookeeper.properties、common.properties、application-api.properties、master.properties、worker.properties、alert.properties、quartz.properties 等文件.

  • 2.DS集群的启动&关闭.

DS集群在启动&关闭的时候,会加载该配置文件中的masters,workers,alertServer,apiServers等参数,启动/关闭DS集群.

文件内容如下:


# 注意: 该配置文件中如果包含特殊字符,如: `.*[]^${}\+?|()@#&`, 请转义,
#      示例: `[` 转义为 `\[`# 数据库类型, 目前仅支持 postgresql 或者 mysql
dbtype="mysql"# 数据库 地址 & 端口
dbhost="192.168.xx.xx:3306"# 数据库 名称
dbname="dolphinscheduler"# 数据库 用户名
username="xx"# 数据库 密码
password="xx"# Zookeeper地址
zkQuorum="192.168.xx.xx:2181,192.168.xx.xx:2181,192.168.xx.xx:2181"# 将DS安装到哪个目录,如: /data1_1T/dolphinscheduler,
installPath="/data1_1T/dolphinscheduler"# 使用哪个用户部署
# 注意: 部署用户需要sudo 权限, 并且可以操作 hdfs .
#     如果使用hdfs的话,根目录必须使用该用户进行创建.否则会有权限相关的问题.
deployUser="dolphinscheduler"# 以下为告警服务配置
# 邮件服务器地址
mailServerHost="smtp.exmail.qq.com"# 邮件服务器 端口
mailServerPort="25"# 发送者
mailSender="xxxxxxxxxx"# 发送用户
mailUser="xxxxxxxxxx"# 邮箱密码
mailPassword="xxxxxxxxxx"# TLS协议的邮箱设置为true,否则设置为false
starttlsEnable="true"# 开启SSL协议的邮箱配置为true,否则为false。注意: starttlsEnable和sslEnable不能同时为true
sslEnable="false"# 邮件服务地址值,同 mailServerHost
sslTrust="smtp.exmail.qq.com"#业务用到的比如sql等资源文件上传到哪里,可以设置:HDFS,S3,NONE。如果想上传到HDFS,请配置为HDFS;如果不需要资源上传功能请选择NONE。
resourceStorageType="NONE"# if S3,write S3 address,HA,for example :s3a://dolphinscheduler,
# Note,s3 be sure to create the root directory /dolphinscheduler
defaultFS="hdfs://mycluster:8020"# 如果resourceStorageType 为S3 需要配置的参数如下:
s3Endpoint="http://192.168.xx.xx:9010"
s3AccessKey="xxxxxxxxxx"
s3SecretKey="xxxxxxxxxx"# 如果ResourceManager是HA,则配置为ResourceManager节点的主备ip或者hostname,比如"192.168.xx.xx,192.168.xx.xx",否则如果是单ResourceManager或者根本没用到yarn,请配置yarnHaIps=""即可,如果没用到yarn,配置为""
yarnHaIps="192.168.xx.xx,192.168.xx.xx"# 如果是单ResourceManager,则配置为ResourceManager节点ip或主机名,否则保持默认值即可。
singleYarnIp="yarnIp1"# 资源文件在 HDFS/S3  存储路径
resourceUploadPath="/dolphinscheduler"# HDFS/S3  操作用户
hdfsRootUser="hdfs"# 以下为 kerberos 配置# kerberos是否开启
kerberosStartUp="false"
# kdc krb5 config file path
krb5ConfPath="$installPath/conf/krb5.conf"
# keytab username
keytabUserName="hdfs-mycluster@ESZ.COM"
# username keytab path
keytabPath="$installPath/conf/hdfs.headless.keytab"# api 服务端口
apiServerPort="12345"# 部署DS的所有主机hostname
ips="ds1,ds2,ds3,ds4,ds5"# ssh 端口 , 默认 22
sshPort="22"# 部署master服务主机
masters="ds1,ds2"# 部署 worker服务的主机
# 注意: 每一个worker都需要设置一个worker 分组的名称,默认值为 "default"
workers="ds1:default,ds2:default,ds3:default,ds4:default,ds5:default"#  部署alert服务主机
alertServer="ds3"# 部署api服务主机
apiServers="ds1"

11.dolphinscheduler_env.sh [环境变量配置]

通过类似shell方式提交任务的的时候,会加载该配置文件中的环境变量到主机中.
涉及到的任务类型有: Shell任务、Python任务、Spark任务、Flink任务、Datax任务等等

export HADOOP_HOME=/opt/soft/hadoop
export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
export SPARK_HOME1=/opt/soft/spark1
export SPARK_HOME2=/opt/soft/spark2
export PYTHON_HOME=/opt/soft/python
export JAVA_HOME=/opt/soft/java
export HIVE_HOME=/opt/soft/hive
export FLINK_HOME=/opt/soft/flink
export DATAX_HOME=/opt/soft/datax/bin/datax.pyexport PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$DATAX_HOME:$PATH

12.各服务日志配置文件

对应服务服务名成 日志文件名
api服务日志配置文件 logback-api.xml
master服务日志配置文件 logback-master.xml
worker服务日志配置文件 logback-worker.xml
alert服务日志配置文件 logback-alert.xml

Dolphinscheduler 1.3.x 系列配置文件构梳理相关推荐

  1. SpringCloud微框架系列整体模块梳理

    转载自:https://www.cnblogs.com/softidea/p/6498125.html SpringCloud微框架系列整体模块梳理 以下为Spring Cloud的核心功能: 分布式 ...

  2. 无码系列-1-架构师启蒙篇

    无码系列-1-架构师启蒙篇

  3. Pytest框架系列——配置文件Pytest.ini

    前言 pytest.ini文件是pytest的主配置文件:可以改变pytest的运行方式:它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行. pytest.ini文件的位置 ...

  4. Python 全栈系列97 - 资源梳理

    说明 资源的整合有时候还是比较麻烦的,特别是多了容易混乱,稍微梳理一下. 内容 我把资源分为几种: 1 环境资源 2 文件资源 3 函数资源 4 数据资源 1 环境资源 环境资源主要指提供程序运行的基 ...

  5. 【总结】C语言实用算法系列之知识点梳理_附学生管理系统各模块代码

    1.内存四区特点 a)全局区变量空间缺省每个字节为00,栈空间缺省是cc,堆缺省是cd b)堆.全局区(静态区).字符串常量区,与栈区空间的位置距离很大,栈区访问速度可能最快: 2.C语言与C++编译 ...

  6. hadoop配置文件详解系列(一)-core-site.xml篇

    导读:关于hadoop的配置文件,目前其它网站资料中都是只写了几个常用的属性配置,但平时可能也会用到其它属性,这里就一起写出来,供大家参考.本篇先从core-site.xml开始,后续将继续进行其它配 ...

  7. 黑鲨4S系列正式发布全系2699元起并推出自由高达联名套装

    10月13日,黑鲨"进化·出击"新品发布会召开,全新黑鲨4S系列游戏手机.黑鲨凤鸣真无线蓝牙耳机(超低延迟标准版).黑鲨4S高达限定版(自由高达系列)等产品正式发布. 具体配置与价 ...

  8. Struts2的配置文件——web.xml

    2019独角兽企业重金招聘Python工程师标准>>> 任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应 ...

  9. 知识表示学习(KG Embedding)—— TransX系列

    文章目录 前言 TransE TransH TransR TransD 总结 参考资料 前言 知识表示学习是针对于知识图谱三元组所做的word embedding,平常所做的都是基于完整的文本表述比如 ...

最新文章

  1. PHP下解决Cannot find module (IP-MIB)的问题
  2. Makefile中的patsubst函数
  3. dojo中的dojoConfig配置
  4. ROS下获取kinectv2相机的仿照TUM数据集格式的彩色图和深度图
  5. 关于Spring底层原理面试的那些问题,你是不是真的懂Spring?
  6. xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd报...
  7. mysql不定参数函数_可变参数函数(一)
  8. java web服务器cpu占用过高的处理 (2014-07-21 17:17:36)
  9. PCB设计经验(1)
  10. 企业微信打标签功能在企鲸客SCRM管理系统里面的作用
  11. 从支点网CEO李岩经历中,我读到的一些东西
  12. 关于IE浏览器的一些思路
  13. 创意小发明:山寨码表.自行车码表的制作 程序原理图,设计图,源代码
  14. 【JZOJ 省选模拟】6638.Seat
  15. css图片菜鸟教程,css 常用样式(分享)
  16. semantic ui中文文档_求你别再用swagger了,给你推荐几个在线文档生成神器
  17. 本科生掀起“科研热”?该校本科生连发SCI,其中2篇顶刊
  18. 哪款看板工具好? 敏捷工具推荐
  19. 【Ubuntu安装后基本配置】
  20. the+比较级,the+比较级

热门文章

  1. BIRCH层次聚类优化算法(平衡迭代规约聚类树
  2. jquery抽奖大转盘实例(插件思想)
  3. BZOJ[2563] 阿狸和桃子的游戏
  4. 什么是Junit测试?
  5. Web3音乐应用Melody,开启唱歌打金模式
  6. python的类作用_python中类的作用是什么
  7. 如何在LeTax极限符号下输入多个平行的等式
  8. windows 设置mvn 本地命令
  9. Qt sqlite 数据库操作封装
  10. 交换机背板带宽、交换容量、包转发率和线速转发的含义