Apache DolphinScheduler(海豚調度) - 1.3 系列核心表結構剖析

来源:https://www.cnblogs.com/dailidong/archive/2020/07/03/13231519.html
-Advertisement-
Play Games

Apache DolphinScheduler 是一個分散式去中心化,易擴展的可視化 DAG 工作流任務調度系統。致力於解決數據處理流程中錯綜複雜的依賴關係,使調度系統在數據處理流程中開箱即用。 近日,伯毅同學給社區貢獻了工作流核心表結構的剖析文章,非常細緻,喜歡的伙伴請轉走 1. 工作流總體存儲結 ...


Apache DolphinScheduler 是一個分散式去中心化,易擴展的可視化 DAG 工作流任務調度系統。致力於解決數據處理流程中錯綜複雜的依賴關係,使調度系統在數據處理流程中開箱即用。

近日,伯毅同學給社區貢獻了工作流核心表結構的剖析文章,非常細緻,喜歡的伙伴請轉走

1. 工作流總體存儲結構

在 dolphinscheduler 庫中創建的所有工作流定義(模板)都保存在 t_ds_process_definition 表中.

該資料庫表結構如下表所示:

序號 欄位 類型 描述
1 id int(11) 主鍵
2 name varchar(255) 流程定義名稱
3 version int(11) 流程定義版本
4 release_state tinyint(4) 流程定義的發佈狀態:0 未上線 , 1已上線
5 project_id int(11) 項目id
6 user_id int(11) 流程定義所屬用戶id
7 process_definition_json longtext 流程定義JSON
8 description text 流程定義描述
9 global_params text 全局參數
10 flag tinyint(4) 流程是否可用:0 不可用,1 可用
11 locations text 節點坐標信息
12 connects text 節點連線信息
13 receivers text 收件人
14 receivers_cc text 抄送人
15 create_time datetime 創建時間
16 timeout int(11) 超時時間
17 tenant_id int(11) 租戶id
18 update_time datetime 更新時間
19 modify_by varchar(36) 修改用戶
20 resource_ids varchar(255) 資源ids

其中 process_definition_json 欄位為核心欄位, 定義了 DAG 圖中的任務信息.該數據以JSON 的方式進行存儲.

公共的數據結構如下表:

序號 欄位 類型 描述
1 globalParams Array 全局參數
2 tasks Array 流程中的任務集合 [ 各個類型的結構請參考如下章節]
3 tenantId int 租戶id
4 timeout int 超時時間

數據示例:

{
    "globalParams":[
        {
            "prop":"golbal_bizdate",
            "direct":"IN",
            "type":"VARCHAR",
            "value":"${system.biz.date}"
        }
    ],
    "tasks":Array[1],
    "tenantId":0,
    "timeout":0
}

2. 各任務類型存儲結構詳解

2.1 Shell 節點

** Shell 節點數據結構如下:**

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 SHELL
3 name String 名稱
4 params Object 自定義參數 Json 格式
5 rawScript String Shell腳本
6 localParams Array 自定義參數
7 resourceList Array 資源文件
8 description String 描述
9 runFlag String 運行標識
10 conditionResult Object 條件分支
11 successNode Array 成功跳轉節點
12 failedNode Array 失敗跳轉節點
13 dependence Object 任務依賴 與params互斥
14 maxRetryTimes String 最大重試次數
15 retryInterval String 重試間隔
16 timeout Object 超時控制
17 taskInstancePriority String 任務優先順序
18 workerGroup String Worker 分組
19 preTasks Array 前置任務

Shell 節點數據樣例:

{
    "type":"SHELL",
    "id":"tasks-80760",
    "name":"Shell Task",
    "params":{
        "resourceList":[
            {
                "id":3,
                "name":"run.sh",
                "res":"run.sh"
            }
        ],
        "localParams":[
        ],
        "rawScript":"echo "This is a shell script""
    },
    "description":"",
    "runFlag":"NORMAL",
    "conditionResult":{
        "successNode":[
            ""
        ],
        "failedNode":[
            ""
        ]
    },
    "dependence":{
    },
    "maxRetryTimes":"0",
    "retryInterval":"1",
    "timeout":{
        "strategy":"",
        "interval":null,
        "enable":false
    },
    "taskInstancePriority":"MEDIUM",
    "workerGroup":"default",
    "preTasks":[
    ]
}

2.2 SQL節點

通過 SQL 對指定的數據源進行數據查詢、更新操作.

** SQL 節點數據結構如下:**

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 SQL
3 name String 名稱
4 params Object 自定義參數 Json 格式
5 type String 資料庫類型
6 datasource Int 數據源id
7 sql String 查詢SQL語句
8 udfs String udf函數 UDF函數id,以逗號分隔.
9 sqlType String SQL節點類型 0 查詢 , 1 非查詢
10 title String 郵件標題
11 receivers String 收件人
12 receiversCc String 抄送人
13 showType String 郵件顯示類型 TABLE 表格 , ATTACHMENT附件
14 connParams String 連接參數
15 preStatements Array 前置SQL
16 postStatements Array 後置SQL
17 localParams Array 自定義參數
18 description String 描述
19 runFlag String 運行標識
20 conditionResult Object 條件分支
21 successNode Array 成功跳轉節點
22 failedNode Array 失敗跳轉節點
23 dependence Object 任務依賴 與params互斥
24 maxRetryTimes String 最大重試次數
25 retryInterval String 重試間隔
26 timeout Object 超時控制
27 taskInstancePriority String 任務優先順序
28 workerGroup String Worker 分組
29 preTasks Array 前置任務

** SQL 節點數據樣例:**

{
    "type":"SQL",
    "id":"tasks-95648",
    "name":"SqlTask-Query",
    "params":{
        "type":"MYSQL",
        "datasource":1,
        "sql":"select id , namge , age from emp where id =  ${id}",
        "udfs":"",
        "sqlType":"0",
        "title":"[email protected]",
        "receivers":"[email protected]",
        "receiversCc":"",
        "showType":"TABLE",
        "localParams":[
            {
                "prop":"id",
                "direct":"IN",
                "type":"INTEGER",
                "value":"1"
            }
        ],
        "connParams":"",
        "preStatements":[
            "insert into emp ( id,name ) value (1,'Li' )"
        ],
        "postStatements":[
        ]
    },
    "description":"",
    "runFlag":"NORMAL",
    "conditionResult":{
        "successNode":[
            ""
        ],
        "failedNode":[
            ""
        ]
    },
    "dependence":{
    },
    "maxRetryTimes":"0",
    "retryInterval":"1",
    "timeout":{
        "strategy":"",
        "interval":null,
        "enable":false
    },
    "taskInstancePriority":"MEDIUM",
    "workerGroup":"default",
    "preTasks":[
    ]
}

2.3 Spark 節點

** Spark 節點數據結構如下:**

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 SPARK
3 name String 名稱
4 params Object 自定義參數 Json 格式
5 mainClass String 運行主類
6 mainArgs String 運行參數
7 others String 其他參數
8 mainJar Object 程式 jar 包
9 deployMode String 部署模式 local,client,cluster
10 driverCores String driver核數
11 driverMemory String driver 記憶體數
12 numExecutors String executor數量
13 executorMemory String executor記憶體
14 executorCores String executor核數
15 programType String 程式類型 JAVA,SCALA,PYTHON
16 sparkVersion String Spark 版本 SPARK1 , SPARK2
17 localParams Array 自定義參數
18 resourceList Array 資源文件
19 description String 描述
20 runFlag String 運行標識
21 conditionResult Object 條件分支
22 successNode Array 成功跳轉節點
23 failedNode Array 失敗跳轉節點
24 dependence Object 任務依賴 與params互斥
25 maxRetryTimes String 最大重試次數
26 retryInterval String 重試間隔
27 timeout Object 超時控制
28 taskInstancePriority String 任務優先順序
29 workerGroup String Worker 分組
30 preTasks Array 前置任務

** Spark 節點數據樣例:**

{
    "type":"SPARK",
    "id":"tasks-87430",
    "name":"SparkTask",
    "params":{
        "mainClass":"org.apache.spark.examples.SparkPi",
        "mainJar":{
            "id":4
        },
        "deployMode":"cluster",
        "resourceList":[
            {
                "id":3,
                "name":"run.sh",
                "res":"run.sh"
            }
        ],
        "localParams":[
        ],
        "driverCores":1,
        "driverMemory":"512M",
        "numExecutors":2,
        "executorMemory":"2G",
        "executorCores":2,
        "mainArgs":"10",
        "others":"",
        "programType":"SCALA",
        "sparkVersion":"SPARK2"
    },
    "description":"",
    "runFlag":"NORMAL",
    "conditionResult":{
        "successNode":[
            ""
        ],
        "failedNode":[
            ""
        ]
    },
    "dependence":{
    },
    "maxRetryTimes":"0",
    "retryInterval":"1",
    "timeout":{
        "strategy":"",
        "interval":null,
        "enable":false
    },
    "taskInstancePriority":"MEDIUM",
    "workerGroup":"default",
    "preTasks":[
    ]
}

2.4 MapReduce(MR)節點

** MapReduce(MR) 節點數據結構如下:**

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 MR
3 name String 名稱
4 params Object 自定義參數 Json 格式
5 mainClass String 運行主類
6 mainArgs String 運行參數
7 others String 其他參數
8 mainJar Object 程式 jar 包
9 programType String 程式類型 JAVA,PYTHON
10 localParams Array 自定義參數
11 resourceList Array 資源文件
12 description String 描述
13 runFlag String 運行標識
14 conditionResult Object 條件分支
15 successNode Array 成功跳轉節點
16 failedNode Array 失敗跳轉節點
17 dependence Object 任務依賴 與params互斥
18 maxRetryTimes String 最大重試次數
19 retryInterval String 重試間隔
20 timeout Object 超時控制
21 taskInstancePriority String 任務優先順序
22 workerGroup String Worker 分組
23 preTasks Array 前置任務

** MapReduce(MR) 節點數據樣例:**

{
    "type":"MR",
    "id":"tasks-28997",
    "name":"MRTask",
    "params":{
        "mainClass":"wordcount",
        "mainJar":{
            "id":5
        },
        "resourceList":[
            {
                "id":3,
                "name":"run.sh",
                "res":"run.sh"
            }
        ],
        "localParams":[
        ],
        "mainArgs":"/tmp/wordcount/input /tmp/wordcount/output/",
        "others":"",
        "programType":"JAVA"
    },
    "description":"",
    "runFlag":"NORMAL",
    "conditionResult":{
        "successNode":[
            ""
        ],
        "failedNode":[
            ""
        ]
    },
    "dependence":{
    },
    "maxRetryTimes":"0",
    "retryInterval":"1",
    "timeout":{
        "strategy":"",
        "interval":null,
        "enable":false
    },
    "taskInstancePriority":"MEDIUM",
    "workerGroup":"default",
    "preTasks":[
    ]
}

2.5 Python節點

** Python 節點數據結構如下:**

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 PYTHON
3 name String 名稱
4 params Object 自定義參數 Json 格式
5 rawScript String Python腳本
6 localParams Array 自定義參數
7 resourceList Array 資源文件
8 description String 描述
9 runFlag String 運行標識
10 conditionResult Object 條件分支
11 successNode Array 成功跳轉節點
12 failedNode Array 失敗跳轉節點
13 dependence Object 任務依賴 與params互斥
14 maxRetryTimes String 最大重試次數
15 retryInterval String 重試間隔
16 timeout Object 超時控制
17 taskInstancePriority String 任務優先順序
18 workerGroup String Worker 分組
19 preTasks Array 前置任務

Python節點數據樣例:

{
    "type":"PYTHON",
    "id":"tasks-5463",
    "name":"Python Task",
    "params":{
        "resourceList":[
            {
                "id":3,
                "name":"run.sh",
                "res":"run.sh"
            }
        ],
        "localParams":[
        ],
        "rawScript":"print("This is a python script")"
    },
    "description":"",
    "runFlag":"NORMAL",
    "conditionResult":{
        "successNode":[
            ""
        ],
        "failedNode":[
            ""
        ]
    },
    "dependence":{
    },
    "maxRetryTimes":"0",
    "retryInterval":"1",
    "timeout":{
        "strategy":"",
        "interval":null,
        "enable":false
    },
    "taskInstancePriority":"MEDIUM",
    "workerGroup":"default",
    "preTasks":[
    ]
}

2.6 Flink節點

Flink 節點數據結構如下:

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 FLINK
3 name String 名稱
4 params Object 自定義參數 Json 格式
5 mainClass String 運行主類
6 mainArgs String 運行參數
7 others String 其他參數
8 mainJar Object 程式 jar 包
9 deployMode String 部署模式 local,client,cluster
10 slot String slot數量
11 taskManager String taskManage數量
12 taskManagerMemory String taskManager記憶體數
13 jobManagerMemory String jobManager記憶體數
14 programType String 程式類型 JAVA,SCALA,PYTHON
15 localParams Array 自定義參數
16 resourceList Array 資源文件
17 description String 描述
18 runFlag String 運行標識
19 conditionResult Object 條件分支
20 successNode Array 成功跳轉節點
21 failedNode Array 失敗跳轉節點
22 dependence Object 任務依賴 與params互斥
23 maxRetryTimes String 最大重試次數
24 retryInterval String 重試間隔
25 timeout Object 超時控制
26 taskInstancePriority String 任務優先順序
27 workerGroup String Worker 分組
38 preTasks Array 前置任務

** Flink 節點數據樣例:**

{
    "type":"FLINK",
    "id":"tasks-17135",
    "name":"FlinkTask",
    "params":{
        "mainClass":"com.flink.demo",
        "mainJar":{
            "id":6
        },
        "deployMode":"cluster",
        "resourceList":[
            {
                "id":3,
                "name":"run.sh",
                "res":"run.sh"
            }
        ],
        "localParams":[
        ],
        "slot":1,
        "taskManager":"2",
        "jobManagerMemory":"1G",
        "taskManagerMemory":"2G",
        "executorCores":2,
        "mainArgs":"100",
        "others":"",
        "programType":"SCALA"
    },
    "description":"",
    "runFlag":"NORMAL",
    "conditionResult":{
        "successNode":[
            ""
        ],
        "failedNode":[
            ""
        ]
    },
    "dependence":{
    },
    "maxRetryTimes":"0",
    "retryInterval":"1",
    "timeout":{
        "strategy":"",
        "interval":null,
        "enable":false
    },
    "taskInstancePriority":"MEDIUM",
    "workerGroup":"default",
    "preTasks":[
    ]
}

2.7 Http 節點

Http 節點數據結構如下:

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 HTTP
3 name String 名稱
4 params Object 自定義參數 Json 格式
5 url String 請求地址
6 httpMethod String 請求方式 GET,POST,HEAD,PUT,DELETE
7 httpParams Array 請求參數
8 httpCheckCondition String 校驗條件 預設響應碼200
9 condition String 校驗內容
10 localParams Array 自定義參數
11 description String 描述
12 runFlag String 運行標識
13 conditionResult Object 條件分支
14 successNode Array 成功跳轉節點
15 failedNode Array 失敗跳轉節點
16 dependence Object 任務依賴 與params互斥
17 maxRetryTimes String 最大重試次數
18 retryInterval String 重試間隔
19 timeout Object 超時控制
20 taskInstancePriority String 任務優先順序
21 workerGroup String Worker 分組
22 preTasks Array 前置任務

** Http 節點數據樣例:**

{
    "type":"HTTP",
    "id":"tasks-60499",
    "name":"HttpTask",
    "params":{
        "localParams":[
        ],
        "httpParams":[
            {
                "prop":"id",
                "httpParametersType":"PARAMETER",
                "value":"1"
            },
            {
                "prop":"name",
                "httpParametersType":"PARAMETER",
                "value":"Bo"
            }
        ],
        "url":"https://www.xxxxx.com:9012",
        "httpMethod":"POST",
        "httpCheckCondition":"STATUS_CODE_DEFAULT",
        "condition":""
    },
    "description":"",
    "runFlag":"NORMAL",
    "conditionResult":{
        "successNode":[
            ""
        ],
        "failedNode":[
            ""
        ]
    },
    "dependence":{
    },
    "maxRetryTimes":"0",
    "retryInterval":"1",
    "timeout":{
        "strategy":"",
        "interval":null,
        "enable":false
    },
    "taskInstancePriority":"MEDIUM",
    "workerGroup":"default",
    "preTasks":[
    ]
}

2.8 DataX節點

** DataX 節點數據結構如下:**

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 DATAX
3 name String 名稱
4 params Object 自定義參數 Json 格式
5 customConfig Int 自定義類型 0定製 , 1自定義
6 dsType String 源資料庫類型
7 dataSource Int 源資料庫ID
8 dtType String 目標資料庫類型
9 dataTarget Int 目標資料庫ID
10 sql String SQL語句
11 targetTable String 目標表
12 jobSpeedByte Int 限流(位元組數)
13 jobSpeedRecord Int 限流(記錄數)
14 preStatements Array 前置SQL
15 postStatements Array 後置SQL
16 json String 自定義配置 customConfig=1時生效
17 localParams Array 自定義參數 customConfig=1時生效
18 description String 描述
19 runFlag String 運行標識
20 conditionResult Object 條件分支
21 successNode Array 成功跳轉節點
22 failedNode Array 失敗跳轉節點
23 dependence Object 任務依賴 與params互斥
24 maxRetryTimes String 最大重試次數
25 retryInterval String 重試間隔
26 timeout Object 超時控制
27 taskInstancePriority String 任務優先順序
28 workerGroup String Worker 分組
29 preTasks Array 前置任務

DataX 節點數據樣例:

{
    "type":"DATAX",
    "id":"tasks-91196",
    "name":"DataxTask-DB",
    "params":{
        "customConfig":0,
        "dsType":"MYSQL",
        "dataSource":1,
        "dtType":"MYSQL",
        "dataTarget":1,
        "sql":"select id, name ,age from user ",
        "targetTable":"emp",
        "jobSpeedByte":524288,
        "jobSpeedRecord":500,
        "preStatements":[
            "truncate table emp "
        ],
        "postStatements":[
            "truncate table user"
        ]
    },
    "description":"",
    "runFlag":"NORMAL",
    "conditionResult":{
        "successNode":[
            ""
        ],
        "failedNode":[
            ""
        ]
    },
    "dependence":{
    },
    "maxRetryTimes":"0",
    "retryInterval":"1",
    "timeout":{
        "strategy":"",
        "interval":null,
        "enable":false
    },
    "taskInstancePriority":"MEDIUM",
    "workerGroup":"default",
    "preTasks":[
    ]
}

2.9 Sqoop節點

Sqoop 節點數據結構如下:

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 SQOOP
3 name String 名稱
4 params Object 自定義參數 JSON 格式
5 concurrency Int 併發度
6 modelType String 流向 import,export
7 sourceType String 數據源類型
8 sourceParams String 數據源參數 JSON格式
9 targetType String 目標數據類型
10 targetParams String 目標數據參數 JSON格式
11 localParams Array 自定義參數
12 description String 描述
13 runFlag String 運行標識
14 conditionResult Object 條件分支
15 successNode Array 成功跳轉節點
16 failedNode Array 失敗跳轉節點
17 dependence Object 任務依賴 與params互斥
18 maxRetryTimes String 最大重試次數
19 retryInterval String 重試間隔
20 timeout Object 超時控制
21 taskInstancePriority String 任務優先順序
22 workerGroup String Worker 分組
23 preTasks Array 前置任務

Sqoop 節點數據樣例:

{
            "type":"SQOOP",
            "id":"tasks-82041",
            "name":"Sqoop Task",
            "params":{
                "concurrency":1,
                "modelType":"import",
                "sourceType":"MYSQL",
                "targetType":"HDFS",
                "sourceParams":"{"srcType":"MYSQL","srcDatasource":1,"srcTable":"","srcQueryType":"1","srcQuerySql":"selec id , name from user","srcColumnType":"0","srcColumns":"","srcConditionList":[],"mapColumnHive":[{"prop":"hivetype-key","direct":"IN","type":"VARCHAR","value":"hivetype-value"}],"mapColumnJava":[{"prop":"javatype-key","direct":"IN","type":"VARCHAR","value":"javatype-value"}]}",
                "targetParams":"{"targetPath":"/user/hive/warehouse/ods.db/user","deleteTargetDir":false,"fileType":"--as-avrodatafile","compressionCodec":"snappy","fieldsTerminated":",","linesTerminated":"@"}",
                "localParams":[
                ]
            },
            "description":"",
            "runFlag":"NORMAL",
            "conditionResult":{
                "successNode":[
                    ""
                ],
                "failedNode":[
                    ""
                ]
            },
            "dependence":{
            },
            "maxRetryTimes":"0",
            "retryInterval":"1",
            "timeout":{
                "strategy":"",
                "interval":null,
                "enable":false
            },
            "taskInstancePriority":"MEDIUM",
            "workerGroup":"default",
            "preTasks":[
            ]
        }

2.10 條件分支節點

條件分支節點數據結構如下:

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 SHELL
3 name String 名稱
4 params Object 自定義參數 null
5 description String 描述
6 runFlag String 運行標識
7 conditionResult Object 條件分支
8 successNode Array 成功跳轉節點
9 failedNode Array 失敗跳轉節點
10 dependence Object 任務依賴 與params互斥
11 maxRetryTimes String 最大重試次數
12 retryInterval String 重試間隔
13 timeout Object 超時控制
14 taskInstancePriority String 任務優先順序
15 workerGroup String Worker 分組
16 preTasks Array 前置任務

條件分支節點數據樣例:

{
    "type":"CONDITIONS",
    "id":"tasks-96189",
    "name":"條件",
    "params":{
    },
    "description":"",
    "runFlag":"NORMAL",
    "conditionResult":{
        "successNode":[
            "test04"
        ],
        "failedNode":[
            "test05"
        ]
    },
    "dependence":{
        "relation":"AND",
        "dependTaskList":[
        ]
    },
    "maxRetryTimes":"0",
    "retryInterval":"1",
    "timeout":{
        "strategy":"",
        "interval":null,
        "enable":false
    },
    "taskInstancePriority":"MEDIUM",
    "workerGroup":"default",
    "preTasks":[
        "test01",
        "test02"
    ]
}

2.11子流程節點

子流程節點數據結構如下:

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 SHELL
3 name String 名稱
4 params Object 自定義參數 Json 格式
5 processDefinitionId Int 流程定義id
6 description String 描述
7 runFlag String 運行標識
8 conditionResult Object 條件分支
9 successNode Array 成功跳轉節點
10 failedNode Array 失敗跳轉節點
11 dependence Object 任務依賴 與params互斥
12 maxRetryTimes String 最大重試次數
13 retryInterval String 重試間隔
14 timeout Object 超時控制
15 taskInstancePriority String 任務優先順序
16 workerGroup String Worker 分組
17 preTasks Array 前置任務

子流程節點數據樣例:

{
            "type":"SUB_PROCESS",
            "id":"tasks-14806",
            "name":"SubProcessTask",
            "params":{
                "processDefinitionId":2
            },
            "description":"",
            "runFlag":"NORMAL",
            "conditionResult":{
                "successNode":[
                    ""
                ],
                "failedNode":[
                    ""
                ]
            },
            "dependence":{
            },
            "timeout":{
                "strategy":"",
                "interval":null,
                "enable":false
            },
            "taskInstancePriority":"MEDIUM",
            "workerGroup":"default",
            "preTasks":[
            ]
        }

2.12 依賴(DEPENDENT)節點

依賴(DEPENDENT)節點數據結構如下:

序號 參數名 類型 描述 描述
1 id String 任務編碼
2 type String 類型 DEPENDENT
3 name String 名稱
4 params Object 自定義參數 Json 格式
5 rawScript String Shell腳本
6 localParams Array 自定義參數
7 resourceList Array 資源文件
8 description String 描述
9 runFlag String 運行標識
10 conditionResult Object 條件分支
11 successNode Array 成功跳轉節點
12 failedNode Array 失敗跳轉節點
13 dependence Object 任務依賴 與params互斥
14 relation String 關係 AND,OR
15 dependTaskList Array 依賴任務清單
16 maxRetryTimes String 最大重試次數
17 retryInterval String 重試間隔
18 timeout Object 超時控制
19 taskInstancePriority String 任務優先順序
20 workerGroup String Worker 分組
21 preTasks Array 前置任務

依賴(DEPENDENT)節點數據樣例:

{
            "type":"DEPENDENT",
            "id":"tasks-57057",
            "name":"DenpendentTask",
            "params":{
            },
            "description":"",
            "runFlag":"NORMAL",
            "conditionResult":{
                "successNode":[
                    ""
                ],
                "failedNode":[
                    ""
                ]
            },
            "dependence":{
                "relation":"AND",
                "dependTaskList":[
                    {
                        "relation":"AND",
                        "dependItemList":[
                            {
                                "projectId":1,
                                "definitionId":7,
                                "definitionList":[
                                    {
                                        "value":8,
                                        "label":"MRTask"
                                    },
                                    {
                                        "value":7,
                                        "label":"FlinkTask"
                                    },
                                    {
                                        "value":6,
                                        "label":"SparkTask"
                                    },
                                    {
                                        "value":5,
                                        "label":"SqlTask-Update"
                                    },
                                    {
                                        "value":4,
                                        "label":"SqlTask-Query"
                                    },
                                    {
                                        "value":3,
                                        "label":"SubProcessTask"
                                    },
                                    {
                                        "value":2,
                                        "label":"Python Task"
                                    },
                                    {
                                        "value":1,
                                        "label":"Shell Task"
                                    }
                                ],
                                "depTasks":"ALL",
                                "cycle":"day",
                                "dateValue":"today"
                            }
                        ]
                    },
                    {
                        "relation":"AND",
                        "dependItemList":[
                            {
                                "projectId":1,
                                "definitionId":5,
                                "definitionList":[
                                    {
                                        "value":8,
                                        "label":"MRTask"
                                    },
                                    {
                                        "value":7,
                                        "label":"FlinkTask"
                                    },
                                    {
                                        "value":6,
                                        "label":"SparkTask"
                                    },
                                    {
                                        "value":5,
                                        "label":"SqlTask-Update"
                                    },
                                    {
                                        "value":4,
                                        "label":"SqlTask-Query"
                                    },
                                    {
                                        "value":3,
                                        "label":"SubProcessTask"
                                    },
                                    {
                                        "value":2,
                                        "label":"Python Task"
                                    },
                                    {
                                        "value":1,
                                        "label":"Shell Task"
                                    }
                                ],
                                "depTasks":"SqlTask-Update",
                                "cycle":"day",
                                "dateValue":"today"
                            }
                        ]
                    }
                ]
            },
            "maxRetryTimes":"0",
            "retryInterval":"1",
            "timeout":{
                "strategy":"",
                "interval":null,
                "enable":false
            },
            "taskInstancePriority":"MEDIUM",
            "workerGroup":"default",
            "preTasks":[
            ]
        }

DolphinScheduler 社區介紹:

Apache DolphinScheduler 是一個非常多樣化的社區,至今貢獻者已近100名, 他們分別來自 30 多家不同的公司。 微信群用戶3000人。

file

Apache DolphinScheduler 部分用戶案例(排名不分先後)

已經有300多家企業和科研機構在使用DolphinScheduler,來處理各類調度和定時任務,另有500多家公司開通了海豚調度的試用:
file

Apache DolphinScheduler項目起源 - 需求決定

file

Apache DolphinScheduler四大特性

file

Apache DolphinScheduler 能力:

  • 以DAG圖的方式將Task按照任務的依賴關係關聯起來,可實時可視化監控任務的運行狀態

  • 支持豐富的任務類型:Shell、MR、Spark、Flink、SQL(mysql、postgresql、hive、sparksql)、Python、Http、Sub_Process、Procedure等

  • 支持工作流定時調度、依賴調度、手動調度、手動暫停/停止/恢復,同時支持失敗重試/告警、從指定節點恢復失敗、Kill任務等操作

  • 支持工作流優先順序、任務優先順序及任務的故障轉移及任務超時告警/失敗

  • 支持工作流全局參數及節點自定義參數設置

  • 支持資源文件的線上上傳/下載,管理等,支持線上文件創建、編輯

  • 支持任務日誌線上查看及滾動、線上下載日誌等

  • 實現集群HA,通過Zookeeper實現Master集群和Worker集群去中心化

  • 支持對Master/Worker cpu load,memory,cpu線上查看

  • 支持工作流運行歷史樹形/甘特圖展示、支持任務狀態統計、流程狀態統計

  • 支持補數

  • 支持多租戶

  • 支持國際化

Apache DolphinScheduler 1.3 新特性

* Worker實現重構,提升Worker性能

* Master和Worker引入Netty通信

* 去zookeeper任務隊列

* Worker節點的三種選擇:隨機、迴圈和CPU和記憶體的線性加權負載平衡

* Worker去資料庫操作

* 資源中心支持多目錄

* 添加 if/else 條件任務

* 添加 sqoop/datax 任務

* 支持 k8s 部署

* 添加DAG流程圖一鍵格式化

* 流程圖美化

* 支持 ambari 插件安裝

* 批量導出和導入工作流

* 流程定義支持複製

* 大幅簡化配置項,簡化部署

線上DEMO試用

http://106.75.43.194:8888/

DolphinScheduler Slogan

file

加入 Apache DolphinScheduler

在使用 DolphinScheduler 的過程中,如果您有任何問題或者想法、建議,都可以通過Apache 郵件列表參與到 DolphinScheduler 的社區建設中來。

歡迎加入貢獻的隊伍,加入開源社區從提交第一個 PR開始,

  • 找到帶有”easy to fix”標記或者一些非常簡單的issue(比如拼寫錯誤等),先通過第一個PR熟悉提交流程,如果有任何疑問,歡迎聯繫
    file

本文由博客群發一文多發等運營工具平臺 OpenWrite 發佈


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、Why choose front-end 2012.07畢業後,進了一家游戲公司做運營策劃,寫過營銷方案、做過內容編輯、知道廣告投放和換量,還得兼職產品經理畫原型。 每天9.30-23.00以後,周末經常加班,像無頭蒼蠅一樣碰撞一年後,我沒有任何成就感,我開始思考自己每天做的是什麼,將來會做什麼 ...
  • 下麵是總結的css技巧,建議大家收藏,以後用的時候就不用到處查資料了。當然這些也不是所有的,大家如果有什麼好的css有趣樣式技巧也可以發出來哦 三角形 最常見的一種形狀了。切圖,不存在的。 /** 正三角 */ .triangle { width: 0; height: 0; border-styl ...
  • Levy曲線是將一條線段不停地分形成兩條長度相等且相互垂直的線段而生成的。Levy分形的最後很像一個英文字母C,所以也稱它為C曲線。 Levy曲線的生成示意如圖1所示。 圖1 Levy曲線的生成 1.Levy曲線 Levy曲線採用遞歸過程易於實現,編寫如下的HTML代碼。 <!DOCTYPE htm ...
  • 說一下我個人理解跟建議,僅供參考 第一步,先看一本前端入門的書+《Javascript權威指南》:前端入門的書隨便哪本都行,主要是瞭解一下前端HTML + CSS + Javascript大致是怎麼回事,有個概念,腦海中留個大致輪廓就好,非要推薦的話,可以看看《HTML5權威指南》,Apress的書 ...
  • 1.內嵌標簽: iframe: src:要顯示的網路資源路徑 可以是本地資源(相對路徑)也可以是網路資源(url) 註:預設當前頁面打開及載入src指向的資源 width:設置顯示區域寬度 height:設置顯示區域高度 name:設置內嵌區域的名字,結合超鏈接標簽的target屬性使用 註:在當前 ...
  • 開發環境配置 一般情況下開發環境是會跨域的,所以我們只需要在跨域的位置配置即可。進入config/index.js,在proxyTable對象裡面添加代碼,如下 '/api': { target: 'http://localhost:8082', //開發環境,設置調用介面功能變數名稱和埠號別忘了加htt ...
  • 這個遞歸不太難 相信大家都知道什麼是遞歸,但在實際開發的時候用過多少次遞歸呢? 程式的世界有句話叫“人用迴圈,神用遞歸”,很多情況下我們都會優先使用迴圈而不是遞歸。我和幾個朋友聊過,他們的看法是:“相比迴圈而言,遞歸性能更差,而且更不可控,容易出問題。” 捕獲關鍵詞“問題”,啟動“解決”模式... ...
  • 工作中涉及需求 參考案例1: https://blog.csdn.net/IMFaust/article/details/92630595 效果: 參考案例2: https://www.cnblogs.com/cindy-hmy/p/8251193.html 效果: 官方案例: https://ec ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...