未验证 提交 284c50f6 编写于 作者: L lijufeng2016 提交者: GitHub

Compatible with flink1.10 or newer (#2952)

* 兼容flink1.10以上版本

* fix null point bug
Co-authored-by: N李巨丰 <lijf@2345.com>
Co-authored-by: Ndailidong <dailidong66@gmail.com>
上级 87d03798
...@@ -90,6 +90,11 @@ public class FlinkParameters extends AbstractParameters { ...@@ -90,6 +90,11 @@ public class FlinkParameters extends AbstractParameters {
*/ */
private String others; private String others;
/**
* flink version
*/
private String flinkVersion;
/** /**
* program type * program type
* 0 JAVA,1 SCALA,2 PYTHON * 0 JAVA,1 SCALA,2 PYTHON
...@@ -200,6 +205,14 @@ public class FlinkParameters extends AbstractParameters { ...@@ -200,6 +205,14 @@ public class FlinkParameters extends AbstractParameters {
this.programType = programType; this.programType = programType;
} }
public String getFlinkVersion() {
return flinkVersion;
}
public void setFlinkVersion(String flinkVersion) {
this.flinkVersion = flinkVersion;
}
@Override @Override
public boolean checkParameters() { public boolean checkParameters() {
return mainJar != null && programType != null; return mainJar != null && programType != null;
......
...@@ -28,10 +28,12 @@ import java.util.List; ...@@ -28,10 +28,12 @@ import java.util.List;
/** /**
* spark args utils * flink args utils
*/ */
public class FlinkArgsUtils { public class FlinkArgsUtils {
private static final String LOCAL_DEPLOY_MODE = "local"; private static final String LOCAL_DEPLOY_MODE = "local";
private static final String FLINK_VERSION_BEFORE_1_10 = "<1.10";
/** /**
* build args * build args
* @param param flink parameters * @param param flink parameters
...@@ -44,7 +46,6 @@ public class FlinkArgsUtils { ...@@ -44,7 +46,6 @@ public class FlinkArgsUtils {
String tmpDeployMode = param.getDeployMode(); String tmpDeployMode = param.getDeployMode();
if (StringUtils.isNotEmpty(tmpDeployMode)) { if (StringUtils.isNotEmpty(tmpDeployMode)) {
deployMode = tmpDeployMode; deployMode = tmpDeployMode;
} }
if (!LOCAL_DEPLOY_MODE.equals(deployMode)) { if (!LOCAL_DEPLOY_MODE.equals(deployMode)) {
args.add(Constants.FLINK_RUN_MODE); //-m args.add(Constants.FLINK_RUN_MODE); //-m
...@@ -63,12 +64,15 @@ public class FlinkArgsUtils { ...@@ -63,12 +64,15 @@ public class FlinkArgsUtils {
args.add(appName); args.add(appName);
} }
int taskManager = param.getTaskManager(); // judgy flink version,from flink1.10,the parameter -yn removed
if (taskManager != 0) { //-yn String flinkVersion = param.getFlinkVersion();
args.add(Constants.FLINK_TASK_MANAGE); if (FLINK_VERSION_BEFORE_1_10.equals(flinkVersion)) {
args.add(String.format("%d", taskManager)); int taskManager = param.getTaskManager();
if (taskManager != 0) { //-yn
args.add(Constants.FLINK_TASK_MANAGE);
args.add(String.format("%d", taskManager));
}
} }
String jobManagerMemory = param.getJobManagerMemory(); String jobManagerMemory = param.getJobManagerMemory();
if (StringUtils.isNotEmpty(jobManagerMemory)) { if (StringUtils.isNotEmpty(jobManagerMemory)) {
args.add(Constants.FLINK_JOB_MANAGE_MEM); args.add(Constants.FLINK_JOB_MANAGE_MEM);
......
...@@ -49,6 +49,7 @@ public class FlinkArgsUtilsTest { ...@@ -49,6 +49,7 @@ public class FlinkArgsUtilsTest {
public String mainArgs = "testArgs"; public String mainArgs = "testArgs";
public String queue = "queue1"; public String queue = "queue1";
public String others = "--input file:///home"; public String others = "--input file:///home";
public String flinkVersion = "<1.10";
@Before @Before
...@@ -79,6 +80,7 @@ public class FlinkArgsUtilsTest { ...@@ -79,6 +80,7 @@ public class FlinkArgsUtilsTest {
param.setMainArgs(mainArgs); param.setMainArgs(mainArgs);
param.setQueue(queue); param.setQueue(queue);
param.setOthers(others); param.setOthers(others);
param.setFlinkVersion(flinkVersion);
//Invoke buildArgs //Invoke buildArgs
List<String> result = FlinkArgsUtils.buildArgs(param); List<String> result = FlinkArgsUtils.buildArgs(param);
...@@ -128,4 +130,4 @@ public class FlinkArgsUtilsTest { ...@@ -128,4 +130,4 @@ public class FlinkArgsUtilsTest {
assertEquals(5, result.size()); assertEquals(5, result.size());
} }
} }
\ No newline at end of file
...@@ -62,56 +62,73 @@ ...@@ -62,56 +62,73 @@
</x-radio-group> </x-radio-group>
</div> </div>
</m-list-box> </m-list-box>
<m-list-box>
<div slot="text">{{$t('Flink Version')}}</div>
<div slot="content">
<x-select
style="width: 100px;"
v-model="flinkVersion"
:disabled="isDetails">
<x-option
v-for="version in flinkVersionList"
:key="version.code"
:value="version.code"
:label="version.code">
</x-option>
</x-select>
</div>
</m-list-box>
<div class="list-box-4p"> <div class="list-box-4p">
<div class="clearfix list"> <div class="clearfix list">
<span class="sp1">{{$t('slot')}}</span> <span class="sp1" style="word-break:break-all">{{$t('jobManagerMemory')}}</span>
<span class="sp2"> <span class="sp2">
<x-input <x-input
:disabled="isDetails" :disabled="isDetails"
type="input" type="input"
v-model="slot" v-model="jobManagerMemory"
:placeholder="$t('Please enter driver core number')" :placeholder="$t('Please enter the number of Executor')"
style="width: 200px;" style="width: 200px;"
autocomplete="off"> autocomplete="off">
</x-input> </x-input>
</span> </span>
<span class="sp1 sp3">{{$t('taskManager')}}</span> <span class="sp1 sp3">{{$t('taskManagerMemory')}}</span>
<span class="sp2"> <span class="sp2">
<x-input <x-input
:disabled="isDetails" :disabled="isDetails"
type="input" type="input"
v-model="taskManager" v-model="taskManagerMemory"
:placeholder="$t('Please enter driver memory use')" :placeholder="$t('Please enter the Executor memory')"
style="width: 186px;" style="width: 186px;"
autocomplete="off"> autocomplete="off">
</x-input> </x-input>
</span> </span>
</div> </div>
<div class="clearfix list"> <div class="clearfix list">
<span class="sp1" style="word-break:break-all">{{$t('jobManagerMemory')}}</span> <span class="sp1">{{$t('slot')}}</span>
<span class="sp2"> <span class="sp2">
<x-input <x-input
:disabled="isDetails" :disabled="isDetails"
type="input" type="input"
v-model="jobManagerMemory" v-model="slot"
:placeholder="$t('Please enter the number of Executor')" :placeholder="$t('Please enter driver core number')"
style="width: 200px;" style="width: 200px;"
autocomplete="off"> autocomplete="off">
</x-input> </x-input>
</span> </span>
<span class="sp1 sp3">{{$t('taskManagerMemory')}}</span> <div v-if="flinkVersion !== '>=1.10'">
<span class="sp1 sp3">{{$t('taskManager')}}</span>
<span class="sp2"> <span class="sp2">
<x-input <x-input
:disabled="isDetails" :disabled="isDetails"
type="input" type="input"
v-model="taskManagerMemory" v-model="taskManager"
:placeholder="$t('Please enter the Executor memory')" :placeholder="$t('Please enter driver memory use')"
style="width: 186px;" style="width: 186px;"
autocomplete="off"> autocomplete="off">
</x-input> </x-input>
</span> </span>
</div>
</div> </div>
</div> </div>
<m-list-box> <m-list-box>
<div slot="text">{{$t('Command-line parameters')}}</div> <div slot="text">{{$t('Command-line parameters')}}</div>
...@@ -207,6 +224,11 @@ ...@@ -207,6 +224,11 @@
programType: 'SCALA', programType: 'SCALA',
// Program type(List) // Program type(List)
programTypeList: [{ code: 'JAVA' }, { code: 'SCALA' }, { code: 'PYTHON' }], programTypeList: [{ code: 'JAVA' }, { code: 'SCALA' }, { code: 'PYTHON' }],
flinkVersion:'<1.10',
// Flink Versions(List)
flinkVersionList: [{ code: '<1.10' }, { code: '>=1.10' }],
normalizer(node) { normalizer(node) {
return { return {
label: node.name label: node.name
...@@ -324,6 +346,7 @@ ...@@ -324,6 +346,7 @@
return {id: v} return {id: v}
}), }),
localParams: this.localParams, localParams: this.localParams,
flinkVersion: this.flinkVersion,
slot: this.slot, slot: this.slot,
taskManager: this.taskManager, taskManager: this.taskManager,
jobManagerMemory: this.jobManagerMemory, jobManagerMemory: this.jobManagerMemory,
...@@ -485,11 +508,13 @@ ...@@ -485,11 +508,13 @@
this.mainJar = o.params.mainJar.id || '' this.mainJar = o.params.mainJar.id || ''
} }
this.deployMode = o.params.deployMode || '' this.deployMode = o.params.deployMode || ''
this.flinkVersion = o.params.flinkVersion || '<1.10'
this.slot = o.params.slot || 1 this.slot = o.params.slot || 1
this.taskManager = o.params.taskManager || '2' this.taskManager = o.params.taskManager || '2'
this.jobManagerMemory = o.params.jobManagerMemory || '1G' this.jobManagerMemory = o.params.jobManagerMemory || '1G'
this.taskManagerMemory = o.params.taskManagerMemory || '2G' this.taskManagerMemory = o.params.taskManagerMemory || '2G'
this.mainArgs = o.params.mainArgs || '' this.mainArgs = o.params.mainArgs || ''
this.others = o.params.others this.others = o.params.others
this.programType = o.params.programType || 'SCALA' this.programType = o.params.programType || 'SCALA'
......
...@@ -98,6 +98,7 @@ export default { ...@@ -98,6 +98,7 @@ export default {
Script: 'Script', Script: 'Script',
'Please enter script(required)': 'Please enter script(required)', 'Please enter script(required)': 'Please enter script(required)',
'Deploy Mode': 'Deploy Mode', 'Deploy Mode': 'Deploy Mode',
'Flink Version':'Flink Version',
'Driver core number': 'Driver core number', 'Driver core number': 'Driver core number',
'Please enter driver core number': 'Please enter driver core number', 'Please enter driver core number': 'Please enter driver core number',
'Driver memory use': 'Driver memory use', 'Driver memory use': 'Driver memory use',
......
...@@ -99,6 +99,7 @@ export default { ...@@ -99,6 +99,7 @@ export default {
Script: '脚本', Script: '脚本',
'Please enter script(required)': '请输入脚本(必填)', 'Please enter script(required)': '请输入脚本(必填)',
'Deploy Mode': '部署方式', 'Deploy Mode': '部署方式',
'Flink Version': 'Flink版本',
'Driver core number': 'Driver内核数', 'Driver core number': 'Driver内核数',
'Please enter driver core number': '请输入Driver内核数', 'Please enter driver core number': '请输入Driver内核数',
'Driver memory use': 'Driver内存数', 'Driver memory use': 'Driver内存数',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册