Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
DolphinScheduler
提交
d6fc749c
DolphinScheduler
项目概览
apache
/
DolphinScheduler
上一次同步 1 年多
通知
704
Star
9572
Fork
3514
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
d6fc749c
编写于
8月 20, 2021
作者:
K
Kirs
提交者:
GitHub
8月 20, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[FIX-#6007]Wrong complement date (#6009)
上级
40db1877
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
109 addition
and
19 deletion
+109
-19
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/entity/TaskExecutionContext.java
.../dolphinscheduler/server/entity/TaskExecutionContext.java
+14
-0
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/TaskExecuteThread.java
...phinscheduler/server/worker/runner/TaskExecuteThread.java
+25
-1
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/datax/DataxTask.java
.../dolphinscheduler/server/worker/task/datax/DataxTask.java
+8
-1
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/flink/FlinkTask.java
.../dolphinscheduler/server/worker/task/flink/FlinkTask.java
+9
-0
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/http/HttpTask.java
...he/dolphinscheduler/server/worker/task/http/HttpTask.java
+9
-0
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/mr/MapReduceTask.java
...dolphinscheduler/server/worker/task/mr/MapReduceTask.java
+9
-0
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/python/PythonTask.java
...olphinscheduler/server/worker/task/python/PythonTask.java
+10
-0
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/shell/ShellTask.java
.../dolphinscheduler/server/worker/task/shell/ShellTask.java
+8
-14
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTask.java
...ache/dolphinscheduler/server/worker/task/sql/SqlTask.java
+8
-2
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sqoop/SqoopTask.java
.../dolphinscheduler/server/worker/task/sqoop/SqoopTask.java
+9
-1
未找到文件。
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/entity/TaskExecutionContext.java
浏览文件 @
d6fc749c
...
...
@@ -17,6 +17,7 @@
package
org.apache.dolphinscheduler.server.entity
;
import
org.apache.dolphinscheduler.common.process.Property
;
import
org.apache.dolphinscheduler.remote.command.Command
;
import
org.apache.dolphinscheduler.remote.command.TaskExecuteRequestCommand
;
import
org.apache.dolphinscheduler.remote.utils.FastJsonSerializer
;
...
...
@@ -191,6 +192,19 @@ public class TaskExecutionContext implements Serializable{
*/
private
SqoopTaskExecutionContext
sqoopTaskExecutionContext
;
/**
* business param
*/
private
Map
<
String
,
Property
>
paramsMap
;
public
Map
<
String
,
Property
>
getParamsMap
()
{
return
paramsMap
;
}
public
void
setParamsMap
(
Map
<
String
,
Property
>
paramsMap
)
{
this
.
paramsMap
=
paramsMap
;
}
/**
* procedure TaskExecutionContext
*/
...
...
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/TaskExecuteThread.java
浏览文件 @
d6fc749c
...
...
@@ -17,14 +17,20 @@
package
org.apache.dolphinscheduler.server.worker.runner
;
import
static
java
.
util
.
Calendar
.
DAY_OF_MONTH
;
import
com.alibaba.fastjson.JSONObject
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.dolphinscheduler.common.Constants
;
import
org.apache.dolphinscheduler.common.enums.CommandType
;
import
org.apache.dolphinscheduler.common.enums.Event
;
import
org.apache.dolphinscheduler.common.enums.ExecutionStatus
;
import
org.apache.dolphinscheduler.common.model.TaskNode
;
import
org.apache.dolphinscheduler.common.process.Property
;
import
org.apache.dolphinscheduler.common.task.TaskTimeoutParameter
;
import
org.apache.dolphinscheduler.common.utils.CommonUtils
;
import
org.apache.dolphinscheduler.common.utils.DateUtils
;
import
org.apache.dolphinscheduler.common.utils.HadoopUtils
;
import
org.apache.dolphinscheduler.common.utils.StringUtils
;
import
org.apache.dolphinscheduler.remote.command.TaskExecuteResponseCommand
;
...
...
@@ -128,7 +134,7 @@ public class TaskExecuteThread implements Runnable {
// task init
task
.
init
();
preBuildBusinessParams
();
// task handle
task
.
handle
();
...
...
@@ -154,6 +160,24 @@ public class TaskExecuteThread implements Runnable {
}
}
private
void
preBuildBusinessParams
(){
Map
<
String
,
Property
>
paramsMap
=
new
HashMap
<>();
// replace variable TIME with $[YYYYmmddd...] in shell file when history run job and batch complement job
if
(
taskExecutionContext
.
getScheduleTime
()
!=
null
)
{
Date
date
=
taskExecutionContext
.
getScheduleTime
();
if
(
CommandType
.
COMPLEMENT_DATA
.
getCode
()
==
taskExecutionContext
.
getCmdTypeIfComplement
())
{
date
=
DateUtils
.
add
(
taskExecutionContext
.
getScheduleTime
(),
DAY_OF_MONTH
,
1
);
}
String
dateTime
=
DateUtils
.
format
(
date
,
Constants
.
PARAMETER_FORMAT_TIME
);
Property
p
=
new
Property
();
p
.
setValue
(
dateTime
);
p
.
setProp
(
Constants
.
PARAMETER_DATETIME
);
paramsMap
.
put
(
Constants
.
PARAMETER_DATETIME
,
p
);
}
taskExecutionContext
.
setParamsMap
(
paramsMap
);
}
/**
* when task finish, clear execute path.
*/
...
...
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/datax/DataxTask.java
浏览文件 @
d6fc749c
...
...
@@ -39,6 +39,7 @@ import org.apache.dolphinscheduler.server.worker.task.AbstractTask;
import
org.apache.dolphinscheduler.server.worker.task.CommandExecuteResult
;
import
org.apache.dolphinscheduler.server.worker.task.ShellCommandExecutor
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.io.FileUtils
;
import
java.io.File
;
...
...
@@ -57,6 +58,7 @@ import java.sql.ResultSet;
import
java.sql.ResultSetMetaData
;
import
java.sql.SQLException
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
...
...
@@ -157,7 +159,12 @@ public class DataxTask extends AbstractTask {
dataXParameters
.
getLocalParametersMap
(),
CommandType
.
of
(
taskExecutionContext
.
getCmdTypeIfComplement
()),
taskExecutionContext
.
getScheduleTime
());
if
(
MapUtils
.
isEmpty
(
paramsMap
)){
paramsMap
=
new
HashMap
<>();
}
if
(
MapUtils
.
isNotEmpty
(
taskExecutionContext
.
getParamsMap
())){
paramsMap
.
putAll
(
taskExecutionContext
.
getParamsMap
());
}
// run datax process
String
jsonFilePath
=
buildDataxJsonFile
(
paramsMap
);
String
shellCommandFilePath
=
buildShellCommandFile
(
jsonFilePath
,
paramsMap
);
...
...
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/flink/FlinkTask.java
浏览文件 @
d6fc749c
...
...
@@ -31,7 +31,10 @@ import org.apache.dolphinscheduler.server.utils.FlinkArgsUtils;
import
org.apache.dolphinscheduler.server.utils.ParamUtils
;
import
org.apache.dolphinscheduler.server.worker.task.AbstractYarnTask
;
import
org.apache.commons.collections.MapUtils
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -86,6 +89,12 @@ public class FlinkTask extends AbstractYarnTask {
flinkParameters
.
getLocalParametersMap
(),
CommandType
.
of
(
taskExecutionContext
.
getCmdTypeIfComplement
()),
taskExecutionContext
.
getScheduleTime
());
if
(
MapUtils
.
isEmpty
(
paramsMap
)){
paramsMap
=
new
HashMap
<>();
}
if
(
MapUtils
.
isNotEmpty
(
taskExecutionContext
.
getParamsMap
())){
paramsMap
.
putAll
(
taskExecutionContext
.
getParamsMap
());
}
logger
.
info
(
"param Map : {}"
,
paramsMap
);
if
(
paramsMap
!=
null
)
{
...
...
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/http/HttpTask.java
浏览文件 @
d6fc749c
...
...
@@ -19,6 +19,8 @@ package org.apache.dolphinscheduler.server.worker.task.http;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.io.Charsets
;
import
org.apache.dolphinscheduler.common.Constants
;
import
org.apache.dolphinscheduler.common.enums.CommandType
;
...
...
@@ -51,6 +53,7 @@ import org.slf4j.Logger;
import
java.io.IOException
;
import
java.nio.charset.StandardCharsets
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -148,6 +151,12 @@ public class HttpTask extends AbstractTask {
httpParameters
.
getLocalParametersMap
(),
CommandType
.
of
(
taskExecutionContext
.
getCmdTypeIfComplement
()),
taskExecutionContext
.
getScheduleTime
());
if
(
MapUtils
.
isEmpty
(
paramsMap
)){
paramsMap
=
new
HashMap
<>();
}
if
(
MapUtils
.
isNotEmpty
(
taskExecutionContext
.
getParamsMap
())){
paramsMap
.
putAll
(
taskExecutionContext
.
getParamsMap
());
}
List
<
HttpProperty
>
httpPropertyList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
httpParameters
.
getHttpParams
()
)){
for
(
HttpProperty
httpProperty:
httpParameters
.
getHttpParams
())
{
...
...
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/mr/MapReduceTask.java
浏览文件 @
d6fc749c
...
...
@@ -32,7 +32,10 @@ import org.apache.dolphinscheduler.server.utils.MapReduceArgsUtils;
import
org.apache.dolphinscheduler.server.utils.ParamUtils
;
import
org.apache.dolphinscheduler.server.worker.task.AbstractYarnTask
;
import
org.apache.commons.collections.MapUtils
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -90,6 +93,12 @@ public class MapReduceTask extends AbstractYarnTask {
mapreduceParameters
.
getLocalParametersMap
(),
CommandType
.
of
(
taskExecutionContext
.
getCmdTypeIfComplement
()),
taskExecutionContext
.
getScheduleTime
());
if
(
MapUtils
.
isEmpty
(
paramsMap
)){
paramsMap
=
new
HashMap
<>();
}
if
(
MapUtils
.
isNotEmpty
(
taskExecutionContext
.
getParamsMap
())){
paramsMap
.
putAll
(
taskExecutionContext
.
getParamsMap
());
}
if
(
paramsMap
!=
null
)
{
String
args
=
ParameterUtils
.
convertParameterPlaceholders
(
mapreduceParameters
.
getMainArgs
(),
ParamUtils
.
convert
(
paramsMap
));
...
...
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/python/PythonTask.java
浏览文件 @
d6fc749c
...
...
@@ -29,8 +29,12 @@ import org.apache.dolphinscheduler.server.utils.ParamUtils;
import
org.apache.dolphinscheduler.server.worker.task.AbstractTask
;
import
org.apache.dolphinscheduler.server.worker.task.CommandExecuteResult
;
import
org.apache.dolphinscheduler.server.worker.task.PythonCommandExecutor
;
import
org.apache.commons.collections.MapUtils
;
import
org.slf4j.Logger
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
...
...
@@ -120,6 +124,12 @@ public class PythonTask extends AbstractTask {
pythonParameters
.
getLocalParametersMap
(),
CommandType
.
of
(
taskExecutionContext
.
getCmdTypeIfComplement
()),
taskExecutionContext
.
getScheduleTime
());
if
(
MapUtils
.
isEmpty
(
paramsMap
)){
paramsMap
=
new
HashMap
<>();
}
if
(
MapUtils
.
isNotEmpty
(
taskExecutionContext
.
getParamsMap
())){
paramsMap
.
putAll
(
taskExecutionContext
.
getParamsMap
());
}
if
(
paramsMap
!=
null
){
rawPythonScript
=
ParameterUtils
.
convertParameterPlaceholders
(
rawPythonScript
,
ParamUtils
.
convert
(
paramsMap
));
}
...
...
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/shell/ShellTask.java
浏览文件 @
d6fc749c
...
...
@@ -32,6 +32,9 @@ import org.apache.dolphinscheduler.server.utils.ParamUtils;
import
org.apache.dolphinscheduler.server.worker.task.AbstractTask
;
import
org.apache.dolphinscheduler.server.worker.task.CommandExecuteResult
;
import
org.apache.dolphinscheduler.server.worker.task.ShellCommandExecutor
;
import
org.apache.commons.collections.MapUtils
;
import
org.slf4j.Logger
;
import
java.io.File
;
...
...
@@ -138,20 +141,11 @@ public class ShellTask extends AbstractTask {
shellParameters
.
getLocalParametersMap
(),
CommandType
.
of
(
taskExecutionContext
.
getCmdTypeIfComplement
()),
taskExecutionContext
.
getScheduleTime
());
// replace variable TIME with $[YYYYmmddd...] in shell file when history run job and batch complement job
if
(
taskExecutionContext
.
getScheduleTime
()
!=
null
)
{
if
(
paramsMap
==
null
)
{
paramsMap
=
new
HashMap
<>();
}
Date
date
=
taskExecutionContext
.
getScheduleTime
();
if
(
CommandType
.
COMPLEMENT_DATA
.
getCode
()
==
taskExecutionContext
.
getCmdTypeIfComplement
())
{
date
=
DateUtils
.
add
(
taskExecutionContext
.
getScheduleTime
(),
DAY_OF_MONTH
,
1
);
}
String
dateTime
=
DateUtils
.
format
(
date
,
Constants
.
PARAMETER_FORMAT_TIME
);
Property
p
=
new
Property
();
p
.
setValue
(
dateTime
);
p
.
setProp
(
Constants
.
PARAMETER_DATETIME
);
paramsMap
.
put
(
Constants
.
PARAMETER_DATETIME
,
p
);
if
(
MapUtils
.
isEmpty
(
paramsMap
)){
paramsMap
=
new
HashMap
<>();
}
if
(
MapUtils
.
isNotEmpty
(
taskExecutionContext
.
getParamsMap
())){
paramsMap
.
putAll
(
taskExecutionContext
.
getParamsMap
());
}
script
=
ParameterUtils
.
convertParameterPlaceholders
(
script
,
ParamUtils
.
convert
(
paramsMap
));
...
...
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTask.java
浏览文件 @
d6fc749c
...
...
@@ -51,6 +51,7 @@ import org.apache.dolphinscheduler.server.utils.UDFUtils;
import
org.apache.dolphinscheduler.server.worker.task.AbstractTask
;
import
org.apache.dolphinscheduler.service.bean.SpringApplicationContext
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang.StringUtils
;
import
java.sql.Connection
;
...
...
@@ -181,9 +182,14 @@ public class SqlTask extends AbstractTask {
sqlParameters
.
getLocalParametersMap
(),
CommandType
.
of
(
taskExecutionContext
.
getCmdTypeIfComplement
()),
taskExecutionContext
.
getScheduleTime
());
if
(
MapUtils
.
isEmpty
(
paramsMap
)){
paramsMap
=
new
HashMap
<>();
}
if
(
MapUtils
.
isNotEmpty
(
taskExecutionContext
.
getParamsMap
())){
paramsMap
.
putAll
(
taskExecutionContext
.
getParamsMap
());
}
// spell SQL according to the final user-defined variable
if
(
paramsMap
==
null
){
if
(
paramsMap
.
isEmpty
()
){
sqlBuilder
.
append
(
sql
);
return
new
SqlBinds
(
sqlBuilder
.
toString
(),
sqlParamsMap
);
}
...
...
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sqoop/SqoopTask.java
浏览文件 @
d6fc749c
...
...
@@ -28,6 +28,9 @@ import org.apache.dolphinscheduler.server.utils.ParamUtils;
import
org.apache.dolphinscheduler.server.worker.task.AbstractYarnTask
;
import
org.apache.dolphinscheduler.server.worker.task.sqoop.generator.SqoopJobGenerator
;
import
org.apache.commons.collections.MapUtils
;
import
java.util.HashMap
;
import
java.util.Map
;
import
org.slf4j.Logger
;
...
...
@@ -78,7 +81,12 @@ public class SqoopTask extends AbstractYarnTask {
sqoopParameters
.
getLocalParametersMap
(),
CommandType
.
of
(
sqoopTaskExecutionContext
.
getCmdTypeIfComplement
()),
sqoopTaskExecutionContext
.
getScheduleTime
());
if
(
MapUtils
.
isEmpty
(
paramsMap
)){
paramsMap
=
new
HashMap
<>();
}
if
(
MapUtils
.
isNotEmpty
(
sqoopTaskExecutionContext
.
getParamsMap
())){
paramsMap
.
putAll
(
sqoopTaskExecutionContext
.
getParamsMap
());
}
if
(
paramsMap
!=
null
)
{
String
resultScripts
=
ParameterUtils
.
convertParameterPlaceholders
(
script
,
ParamUtils
.
convert
(
paramsMap
));
logger
.
info
(
"sqoop script: {}"
,
resultScripts
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录