美文网首页
Flink支持用户自定义资源

Flink支持用户自定义资源

作者: BigDatavid | 来源:发表于2020-11-17 18:06 被阅读0次

一、构建JobGraph

JobGraph jobGraph = PackagedProgramUtils.createJobGraph(program, flinkConfiguration, parallelism, false);

在这个入口中,构建program

PackagedProgram program = PackagedProgram.newBuilder()
                .setJarFile(runJarFile)
                .setArguments(execArgs)
                .setUserClassPaths(classPaths)
                .setSavepointRestoreSettings(savepointRestoreSettings)
                .build();

classPaths中需指定用户资源:

List<URL> classPaths = new ArrayList<URL>();
        classPaths.add(new URL("file://D:\\tmp\\flink\\jar\\udf_test-1.0-SNAPSHOT.jar"));//jar包classpath为jar包本身
        classPaths.add(new URL("file://D:\\tmp\\flink\\jar\\"));//非jar文件classpath为文件目录

二、添加文件

1、standalone模式

public static void fillDependFilesJobGraph(JobGraph jobGraph, String[] dependFiles) {
        Arrays.stream(dependFiles).forEach(path -> jobGraph.addJar(new Path("file://" + path)));
    }

将user资源通过jobGraph.addJar()方法添加到jobGraph

2、yarn-cluster模式

YarnClusterDescriptor clusterDescriptor = (YarnClusterDescriptor) YarnClusterClientFactory.INSTANCE
                .createClusterDescriptor(jobParamsInfo.getYarnConfDir(), flinkConfiguration);
clusterDescriptor.addShipFiles(shipFiles);

通过addShipFiles()方法将用户资源添加到yarn所需的资源列表中

相关文章

网友评论

      本文标题:Flink支持用户自定义资源

      本文链接:https://www.haomeiwen.com/subject/rccfiktx.html