使用 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 步骤数据流作业。步骤包括:
- 设置身份验证和环境变量
GOOGLE_APPLICATION_CREDENTIALS
到包含服务帐户密钥的 JSON 文件的路径
- 创建云存储桶
- 正在安装 Java 开发工具包 (JDK) 和 Apache Maven。确认
JAVA_HOME
环境变量已设置并指向 JDK 安装。
请参阅此 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 步骤数据流作业。步骤包括:
- 设置身份验证和环境变量
GOOGLE_APPLICATION_CREDENTIALS
到包含服务帐户密钥的 JSON 文件的路径 - 创建云存储桶
- 正在安装 Java 开发工具包 (JDK) 和 Apache Maven。确认
JAVA_HOME
环境变量已设置并指向 JDK 安装。