【发布时间】: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 工作正常。你的建议奏效了。