google-cloud-dataflow - 使用 beam 2.0 创建 Dataflow 模板管道时出现身份验证错误
问题描述
请参阅此链接以了解如何运行基于 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: Failed to construction instance from factory method DataflowRunner#fromOptions(interface org.apache.beam.sdk.options.PipelineOptions)
解决方案
正如评论中所说,要解决java.lang.RuntimeException
错误,在运行 Dataflow 作业之前,需要先执行 Java 和 Apache Maven 的步骤。步骤包括:
- 将身份验证和环境变量设置
GOOGLE_APPLICATION_CREDENTIALS
为包含服务帐户密钥的 JSON 文件的路径 - 创建 Cloud Storage 存储分区
- 安装 Java 开发工具包 (JDK) 和 Apache Maven。验证
JAVA_HOME
环境变量是否已设置并指向 JDK 安装。
推荐阅读
- javascript - 如何将 html 模板与 node.js 后端连接?
- powershell - Powershell:如何创建文件并将其文件名写入内容
- haskell - Haskell第一条语句静态结果,用累加器改变
- ruby-on-rails - Rails:redirect_to 后会话变量返回 nil
- c# - 当我最小化表单时出现错误“参数无效”
- android - 如何以编程方式在聊天窗口中显示位置消息,就像android中的whatsapp一样?
- r - 对于大型数据集,如何在 R 中使用先验算法?
- reactjs - 在自身内部反应 redux 渲染组件
- xamarin.forms - 如何使用 Xamarin.Forms 在 iOS 和 Android 应用程序中实现 Docusign?
- bootstrap-4 - 在引导程序 4 中将页脚刷新到页面底部