无法使用Java通过CLI命令创建google云数据流模板
我正在从事谷歌应用引擎项目,我已经为谷歌云数据流作业创建了一个类,并尝试遵循这些步骤? 但是,当我尝试执行链接中提供的命令时,我的数据流作业立即开始执行,我不想开始执行,我只想创建一个模板,稍后再执行它 我尝试执行并创建模板的命令: mvn compile exec:java-Dexec.mainClass=com.testUtils.timespuntdataflow-Dexec.args=“--runner=DataflowRunner--project=my project id--stagingLocation=gs://staging--templateLocation=gs://MyTemplateData16Apr19” 我也尝试过自定义选项类,但没有运气。 下面是我的代码片段无法使用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
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”)`