use of com.dtstack.taier.pluginapi.JarFileInfo in project Taier by DTStack.
the class FlinkClient method grammarCheck.
@Override
public CheckResult grammarCheck(JobClient jobClient) {
CheckResult checkResult = CheckResult.success();
String taskId = jobClient.getJobId();
try {
// 1. before download jar
beforeSubmitFunc(jobClient);
// 2. flink sql args
String taskWorkspace = FlinkUtil.getTaskWorkspace(jobClient.getJobId());
List<String> args = sqlPluginInfo.buildExeArgs(jobClient);
List<String> attachJarLists = cacheFile.get(taskWorkspace);
List<URL> attachJarUrls = Lists.newArrayList();
if (!CollectionUtils.isEmpty(attachJarLists)) {
args.add("-addjar");
String attachJarStr = PublicUtil.objToString(attachJarLists);
args.add(URLEncoder.encode(attachJarStr, Charsets.UTF_8.name()));
attachJarUrls = attachJarLists.stream().map(k -> {
try {
return new File(k).toURL();
} catch (MalformedURLException e) {
throw new PluginDefineException(e);
}
}).collect(Collectors.toList());
}
JarFileInfo coreJarInfo = sqlPluginInfo.createCoreJarInfo();
jobClient.setCoreJarInfo(coreJarInfo);
// 3. build jobGraph
String[] programArgs = args.toArray(new String[args.size()]);
Configuration flinkConfig = flinkClientBuilder.getFlinkConfiguration();
PackagedProgram program = PackagedProgram.newBuilder().setJarFile(new File(coreJarInfo.getJarPath())).setUserClassPaths(attachJarUrls).setConfiguration(flinkConfig).setArguments(programArgs).build();
PackagedProgramUtils.createJobGraph(program, flinkConfig, 1, false);
logger.info("TaskId: {}, GrammarCheck success!", taskId);
} catch (Exception e) {
logger.error("TaskId: {}, GrammarCheck error: ", taskId, e);
checkResult = CheckResult.exception(ExceptionUtil.getErrorMessage(e));
} finally {
try {
afterSubmitFunc(jobClient);
} catch (Exception e) {
}
}
return checkResult;
}
use of com.dtstack.taier.pluginapi.JarFileInfo in project Taier by DTStack.
the class PrepareOperator method parseJarFile.
public static JarFileInfo parseJarFile(String sql) {
Matcher matcher = jarFilePattern.matcher(sql);
if (!matcher.find()) {
throw new PluginDefineException("not a addJar operator:" + sql);
}
JarFileInfo jarFileInfo = new JarFileInfo();
jarFileInfo.setJarPath(matcher.group(1));
if (matcher.groupCount() == 3) {
jarFileInfo.setMainClass(matcher.group(3));
}
return jarFileInfo;
}
Aggregations