【问题标题】:badRequest API response when running dataflow WordCount example运行数据流 WordCount 示例时的 badRequest API 响应
【发布时间】:2015-07-22 09:49:17
【问题描述】:

我正在尝试让谷歌云数据流运行。我正在使用装有 MacOS 10.9 的 MacBook。

我按照GitHubPage的指示安装了google cloud sdk以及dataflow java sdk

为了让数据流 sdk 能够使用 maven 成功编译,我必须将 JAVA_HOME 设置为 JDK 1.7 位置。

为了运行 WordCount 示例,我必须安装 JDK 8 并将其用作我的运行时环境,否则我会收到“major.minor version is unknown: 51.0”的错误。

现在,当我使用 mvn 运行 WordCount 示例时(如 GitHub page 中所建议的那样),程序说它上传了 41 个文件进行暂存。之后,我收到一个 API 错误:

{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Request contains an invalid argument.",
    "reason" : "badRequest"
  } ],
  "message" : "Request contains an invalid argument.",
  "status" : "INVALID_ARGUMENT"
}

这是我在终端中运行的命令:

mvn -e exec:java -pl examples   -Dexec.mainClass=com.google.cloud.dataflow.examples.WordCount   -Dexec.args="--project=${PROJECT} --stagingLocation=${STAGING} --runner=BlockingDataflowPipelineRunner --output=${OUTPUT}"

OUTPUT=gs://path/to/outfile.txt

STAGING=gs://path/to/staging(文件夹)

PROJECT=(项目的数字 ID)

根据命令行输出,我相信 PROJECT id 以及 STAGING 文件夹都是正确的,因为文件已上传。

OUTPUT 文件尚不存在,但文件夹存在。

我看不出问题出在哪里,你能指出正确的方向吗?

谢谢!

【问题讨论】:

    标签: java maven google-cloud-dataflow


    【解决方案1】:

    项目应该是字母数字项目 ID,而不是项目编号。

    对于可怕的错误信息,我们深表歉意。 1.0.0 或更高版本的 SDK 应返回信息更丰富的错误消息。

    【讨论】:

    • 是的,如果能获得一些关于“无效参数”的额外信息,那就太好了。你的答案就是解决方案。我假设如果将文件上传到登台工作,项目ID必须是正确的。但看起来 ProjectId 仅用于执行 Pipeline 而不用于准备数据以进行处理。
    • 该错误信息应该在 SDK 的1.0.0 版本中得到修复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2013-11-15
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 2017-04-25
    相关资源
    最近更新 更多