【问题标题】:Getting authentication error while creating a Dataflow template pipeline with beam 2.0使用 beam 2.0 创建 Dataflow 模板管道时出现身份验证错误
【发布时间】:2020-04-21 15:05:58
【问题描述】:

请参考此链接了解如何运行基于 Java 的 Cloud Dataflow - https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-maven

使用以下命令创建模板

mvn archetype:generate \
      -DarchetypeGroupId=org.apache.beam \
      -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
      -DarchetypeVersion=2.16.0 \
      -DgroupId=org.example \
      -DartifactId=word-count-beam \
      -Dversion="0.1" \
      -Dpackage=org.apache.beam.examples \
      -DinteractiveMode=false

然后要使用 DataflowRunner 运行作业,请执行以下命令

mvn -Pdataflow-runner compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--project=<PROJECT_ID> \
      --stagingLocation=gs://<STORAGE_BUCKET>/staging/ \
      --output=gs://<STORAGE_BUCKET>/output \
      --runner=DataflowRunner"

但是当尝试运行上面的命令时出现以下错误 java.lang.RuntimeException:无法从工厂方法DataflowRunner#fromOptions(interface org.apache.beam.sdk.options.PipelineOptions)构造实例

【问题讨论】:

  • 您遇到的错误还有更多吗?
  • 在使用 Dataflow 之前,您是否遵循了before you begin 的步骤?如果是这样,您是否设置了GOOGLE_APPLICATION_CREDENTIALS 环境变量(echo $GOOGLE_APPLICATION_CREDENTIALS)?使用的服务帐户是否具有运行作业所需的roles
  • 谢谢,Ankur 现在可以正常工作了
  • @ajit singh 你能确认我的建议对你有帮助吗?如果是,我将创建一个答案,以帮助未来的贡献者进行研究。
  • 是的 Ankur 工作正常。你的建议奏效了。

标签: google-cloud-dataflow


【解决方案1】:

正如评论中所说,要解决 java.lang.RuntimeException 错误,在运行 Dataflow 作业之前,需要遵循 Java 和 Apache Maven 的 before you begin 步骤。步骤包括:

  1. 将身份验证和环境变量 GOOGLE_APPLICATION_CREDENTIALS 设置为包含服务帐户密钥的 JSON 文件的路径
  2. 创建 Cloud Storage 存储分区
  3. 安装 Java 开发工具包 (JDK) 和 Apache Maven。验证 JAVA_HOME 环境变量是否已设置并指向 JDK 安装。

【讨论】:

    猜你喜欢
    • 2018-11-15
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 2020-07-10
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    相关资源
    最近更新 更多