【问题标题】:Getting java.io.IOException: Error getting access token from metadata server at: http://169.254.169.254/computeMetadata/v1/instance/ Error获取 java.io.IOException:从元数据服务器获取访问令牌时出错:http://169.254.169.254/computeMetadata/v1/instance/ 错误
【发布时间】:2021-10-05 01:31:24
【问题描述】:

我可以使用 gcs-connector 和 spark-bigquery-in Spark 应用程序从 Bigquery 获取数据。但是在尝试使用 spark 应用程序将数据加载到 GCP 中的 Bigquery 时出现以下错误。

Exception in thread "main" java.io.IOException: Error getting access token from metadata server at: http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token

代码:

df_bigquery.write.format("bigquery").option("credentialsFile", "D://input/absolute-vertex-321015-a78e81ae77a0.json").option("parentProject", "absolute-vertex-321015").option("temporaryGcsBucket","emp_demo_1").save("absolute-vertex-321015.org.employee_loaded")

非常感谢任何帮助。

提前致谢。

【问题讨论】:

  • 同样的错误,我也想要答案,你有解决办法吗??
  • @alakmarShafin 你能分享一个错误堆栈跟踪吗?

标签: apache-spark google-cloud-platform google-bigquery


【解决方案1】:

我可以帮你吗?

元数据端点 /computeMetadata/v1/instance/service-accounts/default/token 返回可用于向其他 Google Cloud API 验证您的应用程序的身份验证令牌。

因为错误是:线程“main”中的异常 java.io.IOException:从元数据服务器获取访问令牌时出错http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token

使用 curl 请求访问令牌并向 API 发送请求:

  1. 在您的应用程序运行的实例上,通过运行以下命令查询元数据服务器以获取访问令牌:
$ curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token" \
-H "Metadata-Flavor: Google"

请求返回类似如下的响应:

{
      "access_token":"ya29.AHES6ZRN3-HlhAPya30GnW_bHSb_QtAS08i85nHq39HE3C2LTrCARA",
      "expires_in":3599,
      "token_type":"Bearer"
 }
  1. 从响应中复制access_token 属性的值,并使用它向API 发送请求。例如,以下请求会打印您项目中某个区域的实例列表:
$ curl https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances \
-H "Authorization":"Bearer [ACCESS_TOKEN]"

地点:

[PROJECT_ID] 是此请求的项目 ID。

[ZONE] 是列出实例所在的区域。

[ACCESS_TOKEN] 是您从第 1 步获得的访问令牌值。

注意:

您只能将访问令牌用于您在创建实例时指定的范围。例如,如果实例仅被授予 Cloud Storage 的 https://www.googleapis.com/auth/storage-full 范围,则它不能使用访问令牌向 BigQuery 发出请求。

有关您可以在请求中设置的参数的信息,请参阅参数文档。

If you want to Authenticating applications with a client library 使用此引用。

我很乐意提供帮助,如果这些步骤解决了您的问题,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2021-12-02
    • 2014-09-08
    • 2020-12-07
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多