簡體   English   中英

Spark 從 gcs object 讀取作業卡住

[英]Spark read job from gcs object stuck

我正在嘗試在本地讀取帶有火花作業的 object。 我之前在本地使用另一個 Spark 作業創建。 查看日志時,我沒有看到任何奇怪的東西,並且在 spark UI 中,工作只是卡住了

在此處輸入圖像描述

在我開始讀取作業之前,我將 spark 配置更新如下:

val hc = spark.sparkContext.hadoopConfiguration
hc.set("fs.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem")
hc.set("fs.AbstractFileSystem.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS")
hc.set("fs.gs.project.id", credential.projectId)
hc.set("fs.gs.auth.service.account.enable", "true")
hc.set("fs.gs.auth.service.account.email", credential.email)
hc.set("fs.gs.auth.service.account.private.key.id", credential.keyId)
hc.set("fs.gs.auth.service.account.private.key", credential.key)

然后我就這樣讀

val path = "gs://mybucket/data.csv"
val options = Map("credentials" -> credential.base64ServiceAccount, "parentProject" -> credential.projectId)
spark.read.format("csv")
      .options(options)
      .load(path)

我的服務帳戶具有這些權限,我確實添加了我能找到的 Object 存儲的所有權限

Storage Admin
Storage Object Admin
Storage Object Creator
Storage Object Viewer

這就是我之前寫的 object

val path = "gs://mybucket/data.csv"
val options = Map("credentials" -> credential.base64ServiceAccount, "parentProject" -> credential.projectId, "header" -> "true")
var writer = df.write.format("csv").options(options)
writer.save(path)

這些是我的依賴

Seq(
  "org.apache.spark" %% "spark-core" % "3.1.1",
  "org.apache.hadoop" % "hadoop-client" % "3.3.1",
  "com.google.cloud.spark" %% "spark-bigquery-with-dependencies" % "0.23.0",
  "com.google.cloud.bigdataoss" % "gcs-connector" % "hadoop3-2.2.4",
  "com.google.cloud" % "google-cloud-storage" % "2.2.1"
)

知道為什么寫入會成功但讀取會像這樣卡住嗎?

我使用的依賴項版本不是最新的。 一旦我將谷歌連接器依賴項更新到最新版本(2021 年 12 月),我就可以從谷歌存儲中讀取和寫入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM