dolphinscheduler 参数
时间: 2023-09-20 17:05:28 浏览: 170
DolphinScheduler 是一款分布式的、易扩展的、高可用的 DAG 工作流任务调度系统。它的常用参数包括:
1. 全局参数:
- ds.env:指定 DolphinScheduler 运行的环境,如:test、dev、prod 等;
- ds.zookeeper.quorum:指定 ZooKeeper 集群地址,多个地址用逗号分隔;
- ds.zookeeper.root:指定 DolphinScheduler 在 ZooKeeper 上的根节点;
- ds.server.list:指定 DolphinScheduler 的服务器列表,多个地址用逗号分隔。
2. 调度器参数:
- ds.master.exec.threads:指定 Master 节点执行任务的线程数;
- ds.master.task.commit.retryTimes:指定任务提交失败时的重试次数;
- ds.master.task.commit.interval:指定任务提交失败时的重试间隔时间。
3. Worker 参数:
- ds.worker.worker.exec.threads:指定 Worker 节点执行任务的线程数;
- ds.worker.task.number:指定 Worker 节点同时执行的任务数量;
- ds.worker.reserved.memory:指定 Worker 节点保留的内存大小。
这些参数可以在 DolphinScheduler 的配置文件中进行设置。
相关问题
dolphinscheduler 参数传递
在DolphinScheduler中,参数传递可以使用基础内置参数和衍生内置参数。
基础内置参数用于声明变量名,并在任务调度过程中提供特定的含义。其中,system.biz.date表示日常调度实例定时的定时时间的前一天,格式为yyyyMMdd;system.biz.curdate表示日常调度实例定时的定时时间,格式为yyyyMMdd;system.datetime表示日常调度实例定时的定时时间,格式为yyyyMMddHHmmss。 [1]
当多个上游任务传递了相同的参数名称时,下游节点会优先使用非空值的参数。如果存在多个非空值的参数,则会选择完成时间较早的上游任务对应的参数。这是DolphinScheduler的默认行为。 [2]
此外,DolphinScheduler还支持衍生内置参数,可以在代码中自定义变量名。衍生内置参数的声明方式是${变量名}$,可以根据需要任意组合分解,例如$、$、$等。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Apache DolphinScheduler的工作流传参](https://blog.csdn.net/yy8623977/article/details/126244549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
dolphinscheduler参数传递
### Apache DolphinScheduler 参数传递方法
#### 使用全局参数
在 Apache DolphinScheduler 中,可以通过定义全局参数来实现不同任务之间的参数共享。这些参数可以在工作流级别设置,并在整个流程中被多个任务访问和使用[^1]。
对于时间敏感型的任务,比如 ETL 流程或定时数据处理作业,可以利用全局变量存储起始时间和结束时间等重要时间节点的信息。这使得后续步骤能够基于相同的基准执行操作而无需重复指定相同的时间戳。
```bash
# 定义全局参数的例子
start_time=${YYYYMMDD}T${HH}:${mm}:00Z
end_time=${YYYYMMDD}T${HH}:${mm}:59Z
```
#### 工作流内部节点间的数据交换
除了全局级别的设定外,在更细粒度上——即具体的工作项之间也可以完成信息的流转。当一个前置活动完成后会向下一个环节发送特定的消息或者状态码作为输入条件之一[^2]。
例如在一个简单的ETL过程中:
- **Extract (抽取)** 阶段读取源数据库记录数并将其数量作为一个输出属性;
- 接下来的 **Transform (转换)** 步骤接收此数值用于日志记录或是控制某些逻辑分支的选择依据;
- 最终到达 **Load (加载)** 环节时同样可以根据之前两个阶段产生的中间结果调整行为模式。
这种机制不仅限于字符串形式的内容还可以包含文件路径、SQL查询语句甚至整个JSON对象结构体等形式多样的实体。
```json
{
"input_file_path": "/path/to/input/file.csv",
"sql_query": "SELECT * FROM table WHERE date >= '${start_date}' AND date <= '${end_date}'"
}
```
#### API Server 启动配置示例
另外值得注意的是,在部署环境中正确配置 JVM 及其他环境变量也属于广义上的“参数化”。下面给出了一段关于 `api-server` 的启动命令片段,其中包含了内存分配策略以及垃圾回收选项等方面的自定义设置[^3]:
```shell
/usr/local/jdk1.8.0_202/bin/java \
-server -Duser.timezone=GMT+8 -Xms2g -Xmx2g -Xmn512m \
-XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof \
-cp /opt/bigdata/dolphinscheduler/ds/api-server/conf:/opt/bigdata/dolphinscheduler/ds/api-server/libs/* \
org.apache.dolphinscheduler.api.ApiApplicationServer
```
阅读全文