【问题标题】:Spark read job from gcs object stuck从 gcs 对象的 Spark 读取作业卡住
【发布时间】:2021-12-09 01:38:29
【问题描述】:

我正在尝试在本地读取带有 spark 作业的对象。我之前在本地使用另一个 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)

我的服务帐户拥有这些权限,我确实添加了我能找到的对象存储的所有权限

Storage Admin
Storage Object Admin
Storage Object Creator
Storage Object Viewer

这是我之前写对象的方式

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"
)

知道为什么写入会成功,但读取会这样卡住吗?

【问题讨论】:

  • 您好,请问stackoverflow answer 是否有帮助?
  • @ZeenathSN 尽管 joib 卡在运行阶段并且没有移动到失败,但我没有看到任何异常,我在日志中看到文件扫描正在从正确的文件路径读取但之后没有,所以无法确定问题出在哪里!
  • @ZeenathSN 在我将 gcs-connector 和 spark-bigquery-with-dependencies 更新到最新版本后现在可以阅读了
  • 如果它现在可以工作,那么您能否提供它作为答案并解释您所做的事情,以便对社区有所帮助?

标签: scala apache-spark google-cloud-platform google-cloud-storage gcs


【解决方案1】:

我使用的依赖项版本不是最新的。一旦我将 google 连接器依赖项更新到最新版本(2021 年 12 月),我就可以从 Google 存储中读取和写入。

【讨论】:

    猜你喜欢
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 2017-12-24
    • 2021-10-19
    • 1970-01-01
    相关资源
    最近更新 更多