通过火山引擎 E-MapReduce(EMR)控制台您可以优雅便捷地修改 DolphinScheduler 的运行时配置参数,本文为您介绍 DolphinScheduler 的部分关键配置。
登录 EMR 控制台。
在左侧导航栏中,单击集群管理 > 集群列表 > DolphinScheduler 集群详情 > 服务列表 > DolphinScheduler > 服务参数, 进入服务参数配置界面。
参数配置操作详见:服务管理-管理服务配置参数
配置文件 dolphin_scheduler-common 主要用于配置 Hadoop/YARN 相关的配置项,如下表所示:
参数 | 默认值 | 描述 |
---|---|---|
data_basedir_path | /tmp/dolphinscheduler | 本地工作目录,用于存放临时文件 |
hdfs_root_user | hdfs | 如果存储类型为 HDFS,需要配置拥有对应操作权限的用户 |
hadoop_security_authentication_startup_state | false | hadoop 是否开启 kerberos 权限(有需求您可通过提工单的方式,咨询 EMR 支持人员) |
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 |
kerberos_expire_time | 2 | kerberos 过期时间,接收整数,单位为小时 |
development_state | false | 是否处于开发模式 |
dolphin_scheduler_network_interface_preferred | NONE | 网卡名称 |
dolphin_scheduler_network_priority_strategy | default | ip 获取策略,default 优先获取内网 |
resource_manager_httpaddress_port | 8088 | ResourceManager 的端口 |
datasource_encryption_enable | false | 是否启用 datasource 加密 |
datasource_encryption_salt | !@#$%^&* | datasource 加密使用的 salt |
data_quality_jar_name | dolphinscheduler-data-quality-dev-SNAPSHOT.jar | 配置数据质量使用的 jar 包 |
support_hive_oneSession | false | 设置 hive SQL 是否在同一个 session 中执行 |
sudo_enable | true | 是否开启 sudo |
alert_rpc_port | 50052 | Alert Server 的 RPC 端口 |
zeppelin_rest_url | http://localhost:8080 | zeppelin RESTful API 接口地址 |
参数 | 默认值 | 描述 |
---|---|---|
server_port | 12345 | API 服务通讯端口 |
server_servlet_session_timeout | 120m | 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_banner_charset | UTF-8 | 请求编码 |
spring_jackson_time_zone | UTC | 设置时区 |
spring_jackson_date_format | "yyyy-MM-dd HH:mm:ss" | 设置时间格式 |
spring_messages_basename | i18n/messages | i18n 配置 |
traffic_control_global_switch | false | 流量控制全局开关 |
traffic_control_max_global_qps_rate | 300 | 全局最大请求数/秒 |
traffic_control_tenant_switch | false | 流量控制租户开关 |
traffic_control_default_tenant_qps_rate | 10 | 默认租户最大请求数/秒限制 |
traffic_control_customize_tenant_qps_rate | 自定义租户最大请求数/秒限制 |
参数 | 默认值 | 描述 |
---|---|---|
master_listen_port | 5678 | master 监听端口 |
master_fetch_command_num | 10 | master 拉取 command 数量 |
master_pre_exec_threads | 10 | master 准备执行任务的数量,用于限制并行的 command |
master_exec_threads | 100 | master 工作线程数量,用于限制并行的流程实例数量 |
master_dispatch_task_number | 3 | master 每个批次的派发任务数量 |
master_host_selector | lower_weight | master host 选择器,用于选择合适的 worker 执行任务,可选值包括:random,round_robin,lower_weight |
master_heartbeat_interval | 10 | master 心跳间隔,单位为秒 |
master_task_commit_retry_times | 5 | 任务重试次数 |
master_task_commit_interval | 1000 | 任务提交间隔,单位为毫秒 |
master_state_wheel_interval | 5 | 轮询检查状态时间 |
master_max_cpu_load_avg | -1 | master 最大 cpuload 均值,只有高于系统 cpuload 均值时,master 服务才能调度任务。默认值为 -1,会在运行时设置为当前机器 CPU 核数的两倍 |
master_reserved_memory | 0.3 | master 预留内存,只有低于系统可用内存时,master 服务才能调度任务,单位为 G |
master_failover_interval | 10 | failover 间隔,单位为分钟 |
master_kill_yarn_job_when_task_failover | true | 当任务实例 failover 时是否 kill 掉 yarn job |
master_registry_disconnect_strategy_strategy | stop | 当 master 与注册中心失联之后采取的策略,默认值是 stop,可选值包括:stop,waiting |
master_registry_disconnect_strategy_max_waiting_time | 100s | 当 master 与注册中心失联之后重连时间,之后当 strategy 为 waiting 时该值生效。 该值表示当 master 与注册中心失联时会在给定时间之内进行重连,在给定时间之内重连失败将会停止自己,在重连时 master 会丢弃目前正在执行的工作流,值为 0 表示会无限期等待 |
master_master_worker_group_refresh_interval | 10s | 定期将 workerGroup 从数据库中同步到内存的时间间隔 |
参数 | 默认值 | 描述 |
---|---|---|
worker_listen_port | 1234 | worker 监听端口 |
worker_exec_threads | 100 | worker 工作线程数量,用于限制并行的任务实例数量 |
worker_heartbeat_interval | 10 | worker 心跳间隔,单位为秒 |
worker_host_weight | 100 | 派发任务时,worker 主机的权重 |
worker_tenant_auto_create | true | worker 使用租户对应的系统用户执行作业提交,如果系统没有该用户,则在该参数设置为 true 时自动创建 |
worker_max_cpu_load_avg | -1 | worker 最大 cpuload 均值,只有高于系统 cpuload 均值时,worker 服务才能被派发任务。默认值为 -1,会在运行时设置为当前机器 CPU 核数的两倍 |
worker_reserved_memory | 0.3 | worker 预留内存,只有低于系统可用内存时,worker 服务才能被派发任务,单位为 G |
worker_alert_listen_host | localhost | alert 监听 host |
worker_alert_listen_port | 50052 | alert 监听端口 |
worker_registry_disconnect_strategy_strategy | stop | 当 worker 与注册中心失联之后采取的策略,默认值是 stop,可选值包括 stop,waiting |
worker_registry_disconnect_strategy_max_waiting_time | 100s | 当 worker 与注册中心失联之后重连时间,之后当 strategy 为 waiting 时该值生效。 该值表示当 worker 与注册中心失联时会在给定时间之内进行重连,在给定时间之内重连失败将会停止自己,在重连时 worker 会丢弃 kill 正在执行的任务。值为 0 表示会无限期等待 |
worker_task_execute_threads_full_policy | REJECT | 如果是 REJECT,当 worker 中等待队列中的任务数达到 exec-threads 时,worker 将会拒绝接下来新接收的任务,master 将会重新分发该任务;如果是 CONTINUE,worker 将会接收任务,放入等待队列中等待空闲线程去执行该任务 |
参数 | 默认值 | 描述 |
---|---|---|
server_port | 50053 | Alert Server 监听端口 |
alert_port | 50052 | alert 监听端口 |
参数 | 默认值 | 描述 |
---|---|---|
spring_quartz_properties_org_quartz_threadPool_threadPriority | 5 | 设置线程的优先级(最大为 10,最小为 1,默认为 5) |
spring_quartz_properties_org_quartz_jobStore_isClustered | TRUE | 表示 Quartz 是否集群化部署,集群化的 Quartz 可以通过负载均衡提高性能,并且有更好的容错性,如果应用在集群中设置为 false 会出错 |
spring_quartz_properties_org_quartz_jobStore_class | org.quartz.impl.jdbcjobstore.JobStoreTX | 所有的 quartz 数据,例如 job 和 Trigger 的细节信息被保存在内存或数据库中,有两种实现:JobStoreTX(自己管理事务)和 JobStoreCMT(由 application server 管理事务,即全局事务 JTA) |
spring_quartz_properties_org_quartz_scheduler_instanceId | AUTO | 在集群模式下建议设置为 AUTO,可以避免不同实例的 ID 冲突 |
spring_quartz_properties_org_quartz_jobStore_tablePrefix | QRTZ_ | 数据表前缀 |
spring_quartz_properties_org_quartz_jobStore_acquireTriggersWithinLock | TRUE | 触发 job 时是否需要拥有锁 |
spring_quartz_properties_org_quartz_scheduler_instanceName | DolphinScheduler | 在集群中每个实例都必须有唯一的 instanceId,但是应该有一个相同的 instanceName |
spring_quartz_properties_org_quartz_threadPool_class | org.quartz.simpl.SimpleThreadPool | 线程池的实现类(定长线程池,几乎可满足所有用户的需求) |
spring_quartz_properties_org_quartz_jobStore_useProperties | FALSE | 指示 JDBCJobStore 所有的 JobDataMaps 中的值的形式,true 表示以“k-v”的文本形式存储,false 表示以对象序列化的形式存储在 BLOB 字段中。在 DolphinScheduler 的场景下,序列化是必要的。 |
spring_quartz_properties_org_quartz_threadPool_makeThreadsDaemons | TRUE | 设置是否为守护线程 |
spring_quartz_properties_org_quartz_threadPool_threadCount | 25 | 指定线程数,至少为 1(一般设置为 1-100 之间的整数) |
spring_quartz_properties_org_quartz_jobStore_misfireThreshold | 60000 | 最大能忍受的触发超时时间(触发器被认定为“misfired”之前),如果超过则认为错过触发,默认为 60 秒 |
spring_quartz_properties_org_quartz_scheduler_makeSchedulerThreadDaemon | TRUE | 指定 scheduler 的主线程是否为后台线程 |
spring_quartz_properties_org_quartz_jobStore_driverDelegateClass | org.quartz.impl.jdbcjobstore.StdJDBCDelegate | 类似于 Hibernate 的 dialect,用于处理 DB 之间的差异,StdJDBCDelegate 能满足大部分的 DB |
spring_quartz_properties_org_quartz_jobStore_clusterCheckinInterval | 5000 | 检入到数据库中的频率(单位:毫秒),检查是否其他的实例到了应当检入的时候未检入。这能指出一个失败的实例,且当前 Scheduler 会以此来接管执行失败并可恢复的 Job 通过检入操作,Scheduler 也会更新自身的状态记录 |