You need to enable JavaScript to run this app.
导航

配置指引

最近更新时间2023.03.01 16:29:55

首次发布时间2023.02.23 11:06:57

通过火山引擎 E-MapReduce(EMR)控制台您可以优雅便捷地修改 DolphinScheduler 的运行时配置参数,本文为您介绍 DolphinScheduler 的部分关键配置。

1 使用前提

  1. 已创建包含 DolphinScheduler 组件的 EMR 集群。详见创建集群

2 配置入口

  1. 登录 EMR 控制台

  2. 在左侧导航栏中,单击集群管理 > 集群列表 > DolphinScheduler 集群详情 > 服务列表 > DolphinScheduler > 服务参数, 进入服务参数配置界面。

参数配置操作详见:服务管理-管理服务配置参数

3 Common 配置

配置文件 dolphin_scheduler-common 主要用于配置 Hadoop/YARN 相关的配置项,如下表所示:

参数默认值描述
data_basedir_path/tmp/dolphinscheduler本地工作目录,用于存放临时文件
hdfs_root_userhdfs如果存储类型为 HDFS,需要配置拥有对应操作权限的用户
hadoop_security_authentication_startup_statefalsehadoop 是否开启 kerberos 权限(有需求您可通过提工单的方式,咨询 EMR 支持人员)
java_security_krb5_conf_path/opt/krb5.confkerberos 配置目录
login_user_keytab_usernamehdfs-mycluster@ESZ.COMkerberos 登录用户
login_user_keytab_path/opt/hdfs.headless.keytabkerberos 登录用户 keytab
kerberos_expire_time2kerberos 过期时间,接收整数,单位为小时
development_statefalse是否处于开发模式
dolphin_scheduler_network_interface_preferredNONE网卡名称
dolphin_scheduler_network_priority_strategydefaultip 获取策略,default 优先获取内网
resource_manager_httpaddress_port8088ResourceManager 的端口
datasource_encryption_enablefalse是否启用 datasource 加密
datasource_encryption_salt!@#$%^&*datasource 加密使用的 salt
data_quality_jar_namedolphinscheduler-data-quality-dev-SNAPSHOT.jar配置数据质量使用的 jar 包
support_hive_oneSessionfalse设置 hive SQL 是否在同一个 session 中执行
sudo_enabletrue是否开启 sudo
alert_rpc_port50052Alert Server 的 RPC 端口
zeppelin_rest_urlhttp://localhost:8080zeppelin RESTful API 接口地址

4 API Server 配置

参数默认值描述
server_port12345API 服务通讯端口
server_servlet_session_timeout120mSession 超时时间
server_servlet_context_path/dolphinscheduler/请求路径
spring_servlet_multipart_max_file_size1024MB最大上传文件大小
spring_servlet_multipart_max_request_size1024MB最大请求大小
server_jetty_max_http_post_size5000000Jetty 服务最大发送请求大小
spring_banner_charsetUTF-8请求编码
spring_jackson_time_zoneUTC设置时区
spring_jackson_date_format"yyyy-MM-dd HH:mm:ss"设置时间格式
spring_messages_basenamei18n/messagesi18n 配置
traffic_control_global_switchfalse流量控制全局开关
traffic_control_max_global_qps_rate300全局最大请求数/秒
traffic_control_tenant_switchfalse流量控制租户开关
traffic_control_default_tenant_qps_rate10默认租户最大请求数/秒限制
traffic_control_customize_tenant_qps_rate自定义租户最大请求数/秒限制

5 Master Server 配置

参数默认值描述
master_listen_port5678master 监听端口
master_fetch_command_num10master 拉取 command 数量
master_pre_exec_threads10master 准备执行任务的数量,用于限制并行的 command
master_exec_threads100master 工作线程数量,用于限制并行的流程实例数量
master_dispatch_task_number3master 每个批次的派发任务数量
master_host_selectorlower_weightmaster host 选择器,用于选择合适的 worker 执行任务,可选值包括:random,round_robin,lower_weight
master_heartbeat_interval10master 心跳间隔,单位为秒
master_task_commit_retry_times5任务重试次数
master_task_commit_interval1000任务提交间隔,单位为毫秒
master_state_wheel_interval5轮询检查状态时间
master_max_cpu_load_avg-1master 最大 cpuload 均值,只有高于系统 cpuload 均值时,master 服务才能调度任务。默认值为 -1,会在运行时设置为当前机器 CPU 核数的两倍
master_reserved_memory0.3master 预留内存,只有低于系统可用内存时,master 服务才能调度任务,单位为 G
master_failover_interval10failover 间隔,单位为分钟
master_kill_yarn_job_when_task_failovertrue当任务实例 failover 时是否 kill 掉 yarn job
master_registry_disconnect_strategy_strategystop当 master 与注册中心失联之后采取的策略,默认值是 stop,可选值包括:stop,waiting
master_registry_disconnect_strategy_max_waiting_time100s当 master 与注册中心失联之后重连时间,之后当 strategy 为 waiting 时该值生效。 该值表示当 master 与注册中心失联时会在给定时间之内进行重连,在给定时间之内重连失败将会停止自己,在重连时 master 会丢弃目前正在执行的工作流,值为 0 表示会无限期等待
master_master_worker_group_refresh_interval10s定期将 workerGroup 从数据库中同步到内存的时间间隔

6 Worker Server 配置

参数默认值描述
worker_listen_port1234worker 监听端口
worker_exec_threads100worker 工作线程数量,用于限制并行的任务实例数量
worker_heartbeat_interval10worker 心跳间隔,单位为秒
worker_host_weight100派发任务时,worker 主机的权重
worker_tenant_auto_createtrueworker 使用租户对应的系统用户执行作业提交,如果系统没有该用户,则在该参数设置为 true 时自动创建
worker_max_cpu_load_avg-1worker 最大 cpuload 均值,只有高于系统 cpuload 均值时,worker 服务才能被派发任务。默认值为 -1,会在运行时设置为当前机器 CPU 核数的两倍
worker_reserved_memory0.3worker 预留内存,只有低于系统可用内存时,worker 服务才能被派发任务,单位为 G
worker_alert_listen_hostlocalhostalert 监听 host
worker_alert_listen_port50052alert 监听端口
worker_registry_disconnect_strategy_strategystop当 worker 与注册中心失联之后采取的策略,默认值是 stop,可选值包括 stop,waiting
worker_registry_disconnect_strategy_max_waiting_time100s当 worker 与注册中心失联之后重连时间,之后当 strategy 为 waiting 时该值生效。 该值表示当 worker 与注册中心失联时会在给定时间之内进行重连,在给定时间之内重连失败将会停止自己,在重连时 worker 会丢弃 kill 正在执行的任务。值为 0 表示会无限期等待

worker_task_execute_threads_full_policy

REJECT

如果是 REJECT,当 worker 中等待队列中的任务数达到 exec-threads 时,worker 将会拒绝接下来新接收的任务,master 将会重新分发该任务;如果是 CONTINUE,worker 将会接收任务,放入等待队列中等待空闲线程去执行该任务

7 Alert Server 配置

参数默认值描述
server_port50053Alert Server 监听端口
alert_port50052alert 监听端口

8 Quartz 配置

参数默认值描述
spring_quartz_properties_org_quartz_threadPool_threadPriority5设置线程的优先级(最大为 10,最小为 1,默认为 5)
spring_quartz_properties_org_quartz_jobStore_isClusteredTRUE表示 Quartz 是否集群化部署,集群化的 Quartz 可以通过负载均衡提高性能,并且有更好的容错性,如果应用在集群中设置为 false 会出错
spring_quartz_properties_org_quartz_jobStore_classorg.quartz.impl.jdbcjobstore.JobStoreTX所有的 quartz 数据,例如 job 和 Trigger 的细节信息被保存在内存或数据库中,有两种实现:JobStoreTX(自己管理事务)和 JobStoreCMT(由 application server 管理事务,即全局事务 JTA)
spring_quartz_properties_org_quartz_scheduler_instanceIdAUTO在集群模式下建议设置为 AUTO,可以避免不同实例的 ID 冲突
spring_quartz_properties_org_quartz_jobStore_tablePrefixQRTZ_数据表前缀
spring_quartz_properties_org_quartz_jobStore_acquireTriggersWithinLockTRUE触发 job 时是否需要拥有锁
spring_quartz_properties_org_quartz_scheduler_instanceNameDolphinScheduler在集群中每个实例都必须有唯一的 instanceId,但是应该有一个相同的 instanceName
spring_quartz_properties_org_quartz_threadPool_classorg.quartz.simpl.SimpleThreadPool线程池的实现类(定长线程池,几乎可满足所有用户的需求)
spring_quartz_properties_org_quartz_jobStore_usePropertiesFALSE指示 JDBCJobStore 所有的 JobDataMaps 中的值的形式,true 表示以“k-v”的文本形式存储,false 表示以对象序列化的形式存储在 BLOB 字段中。在 DolphinScheduler 的场景下,序列化是必要的。
spring_quartz_properties_org_quartz_threadPool_makeThreadsDaemonsTRUE设置是否为守护线程
spring_quartz_properties_org_quartz_threadPool_threadCount25指定线程数,至少为 1(一般设置为 1-100 之间的整数)
spring_quartz_properties_org_quartz_jobStore_misfireThreshold60000最大能忍受的触发超时时间(触发器被认定为“misfired”之前),如果超过则认为错过触发,默认为 60 秒
spring_quartz_properties_org_quartz_scheduler_makeSchedulerThreadDaemonTRUE指定 scheduler 的主线程是否为后台线程
spring_quartz_properties_org_quartz_jobStore_driverDelegateClassorg.quartz.impl.jdbcjobstore.StdJDBCDelegate类似于 Hibernate 的 dialect,用于处理 DB 之间的差异,StdJDBCDelegate 能满足大部分的 DB
spring_quartz_properties_org_quartz_jobStore_clusterCheckinInterval5000检入到数据库中的频率(单位:毫秒),检查是否其他的实例到了应当检入的时候未检入。这能指出一个失败的实例,且当前 Scheduler 会以此来接管执行失败并可恢复的 Job 通过检入操作,Scheduler 也会更新自身的状态记录