Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Java通过CLI命令创建google云数据流模板_Java_Google App Engine_Google Cloud Dataflow_Apache Beam - Fatal编程技术网

无法使用Java通过CLI命令创建google云数据流模板

无法使用Java通过CLI命令创建google云数据流模板,java,google-app-engine,google-cloud-dataflow,apache-beam,Java,Google App Engine,Google Cloud Dataflow,Apache Beam,我正在从事谷歌应用引擎项目,我已经为谷歌云数据流作业创建了一个类,并尝试遵循这些步骤? 但是,当我尝试执行链接中提供的命令时,我的数据流作业立即开始执行,我不想开始执行,我只想创建一个模板,稍后再执行它 我尝试执行并创建模板的命令: mvn compile exec:java-Dexec.mainClass=com.testUtils.timespuntdataflow-Dexec.args=“--runner=DataflowRunner--project=my project id--sta

我正在从事谷歌应用引擎项目,我已经为谷歌云数据流作业创建了一个类,并尝试遵循这些步骤? 但是,当我尝试执行链接中提供的命令时,我的数据流作业立即开始执行,我不想开始执行,我只想创建一个模板,稍后再执行它

我尝试执行并创建模板的命令:

mvn compile exec:java-Dexec.mainClass=com.testUtils.timespuntdataflow-Dexec.args=“--runner=DataflowRunner--project=my project id--stagingLocation=gs://staging--templateLocation=gs://MyTemplateData16Apr19”

我也尝试过自定义选项类,但没有运气。 下面是我的代码片段

    public static void main(String[] args) {
        logger.info("main start");
        init();
        logger.info("main end");
    }
    private static void init() {
        DataflowPipelineOptions dataflowOptions = PipelineOptionsFactory.as(DataflowPipelineOptions.class);
        dataflowOptions.setGcpTempLocation("gs://gcpTempLocation/");
        dataflowOptions.setProject("my-project-id");
        dataflowOptions.setStagingLocation("gs://stagingLocation/");
        dataflowOptions.setRunner(DataflowRunner.class);

        FileSystems.setDefaultPipelineOptions(dataflowOptions);
        Pipeline p = Pipeline.create(dataflowOptions);
    p.apply(Create.of("5435798895722496"))
         .apply(new PrintData());
         p.run().waitUntilFinish();
    }

当我尝试为默认wordcount程序执行命令时,模板会被创建,但如果我对自定义类尝试相同的命令,它将开始执行

您的命令行参数不会被传递到管道选项中。如果要使用命令行参数,请将初始化“dataflowOptions”的块替换为:

DataflowPipelineOptions dataflowOptions =
     PipelineOptionsFactory.fromArgs(args)
        .withValidation()
        .as(DataflowPipelineOptions.class);
另一个选项是设置模板位置:

dataflowOptions.setTemplateLocation("gs://MyTemplateData16Apr19");

非常感谢您为我设置了模板位置,我忘记了使用setTemplateLocation选项。我通过设置下面的选项解决了问题-`dataflowOptions.setTemplateLocation(“gs://MyTemplateData16Apr19”)`