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
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...