簡體   English   中英

無法使用 Java 通過 CLI 命令創建谷歌雲數據流模板

[英]Unable to create a google cloud dataflow template through CLI command using Java

我正在研究谷歌應用引擎項目,我為谷歌雲數據流工作創建了一個類,並嘗試按照步驟https://cloud.google.com/dataflow/docs/guides/templates/creating-templates#creating-and -登台模板 但是當我嘗試執行鏈接中提供的命令時,我的數據流作業立即開始執行,我不想開始執行我只想創建一個模板並稍后執行

我嘗試執行和創建模板的命令:

mvn compile exec: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();
    }

當我嘗試為默認 wordcount 程序執行命令時,模板會被創建,但是如果我使用自定義類嘗試相同的命令,它就會開始執行

您的命令行參數沒有被傳遞到管道選項中。 如果要使用命令行參數,請將初始化“dataflowOptions”的塊替換為:

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

另一個選項是設置模板位置:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM