使用 Beam 2.0 创建数据流模板管道时出现身份验证错误

Getting authentication error while creating a Dataflow template pipeline with beam 2.0

请参阅此 link 了解如何 运行 Java 基于云数据流 - 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) 构造实例失败

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

  1. 设置身份验证和环境变量 GOOGLE_APPLICATION_CREDENTIALS 到包含服务帐户密钥的 JSON 文件的路径
  2. 创建云存储桶
  3. 正在安装 Java 开发工具包 (JDK) 和 Apache Maven。确认 JAVA_HOME 环境变量已设置并指向 JDK 安装。