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

标签 java google-app-engine google-cloud-dataflow apache-beam

我正在开发谷歌应用程序引擎项目,我为谷歌云数据流作业创建了一个类,并尝试按照步骤 https://cloud.google.com/dataflow/docs/guides/templates/creating-templates#creating-and-staging-templates 进行操作。 ? 但是,当我尝试执行链接中提供的命令时,我的数据流作业立即开始执行,我不想开始执行,我只想创建一个模板并稍后执行

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

mvn 编译执行:java -Dexec.mainClass=com.testUtils.TimeSpentDataFlow -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();
    }

当我尝试执行默认字数统计程序的命令时,模板会被创建,但如果我尝试使用自定义类执行相同的命令,它就会开始执行

最佳答案

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

DataflowPipelineOptions dataflowOptions =
     PipelineOptionsFactory.fromArgs(args)
        .withValidation()
        .as(DataflowPipelineOptions.class);

另一个选项是设置模板位置:

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

关于java - 无法使用 Java 通过 CLI 命令创建 Google 云数据流模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55714001/

相关文章:

java - mcrypt(在 PHP 中)在 Java 中使用的任何等效项?

Django Nonrel - 使用 noSQL 解决多表继承问题?

google-app-engine - 从 Go on AppEngine 中的 init() 函数获取 URL

google-bigquery - 在 Dataflow 中自动检测 BigQuery 架构?

java - 使用线程时 ImageView 不显示图像

java - Hibernate HQL 中的 SQL 计数

java - 根据调查构建人类可读的句子

java - Google App Engine 1.3.1 <admin-console> 问题

java - Apache Beam 中的缓存 : Static variable vs Stateful processing

java - Eclipse:期间发生内部错误: "Update Hierarchy"