Cloud Dataproc无法访问Cloud Storage存储桶

整倍体

我有一个cloud dataproc Spark作业,该作业也使用Drvier方面的Cloud Strage API(从同一文件夹中选择要使用的特定文件)。

这是Maven的依赖项:

<dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.12</artifactId>
            <version>2.4.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>google-cloud-storage</artifactId>
            <version>1.101.0</version>
        </dependency>
    </dependencies>

这是失败的最简单的代码版本:

import com.google.cloud.storage._

object Test {
  def main(args: Array[String]): Unit = {
    val storage = StorageOptions.getDefaultInstance().getService()
--> storage.list("intent_raw")
  }
}

这是stacktrace:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
    at com.google.api.gax.retrying.BasicRetryingFuture.<init>(BasicRetryingFuture.java:84)
    at com.google.api.gax.retrying.DirectRetryingExecutor.createFuture(DirectRetryingExecutor.java:88)
    at com.google.api.gax.retrying.DirectRetryingExecutor.createFuture(DirectRetryingExecutor.java:74)
    at com.google.cloud.RetryHelper.run(RetryHelper.java:75)
    at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:50)
    at com.google.cloud.storage.StorageImpl.listBlobs(StorageImpl.java:372)
    at com.google.cloud.storage.StorageImpl.list(StorageImpl.java:328)
--> at ai.mandal.cloud.dataproc.Test$.main(Test.scala:14)
    at ai.mandal.cloud.dataproc.Test.main(Test.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
    at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:845)
    at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161)
    at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184)
    at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
    at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:920)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:929)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

我的问题通常是什么原因造成的,并且如果我是通过dataproc服务(可以访问存储桶)运行它的,是否需要为此配置单独的凭据。

整倍体

解决方案是添加

spark.executor.userClassPathFirst = true
spark.driver.userClassPathFirst = true

工作属性。

该问题是由google-cloud-storage与主机环境中发现的番石榴版本冲突引起的

Google建议在您的依赖项中遮盖冲突的番石榴,我也尝试过这样做,但这在这种情况下不起作用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Google Cloud Storage上还原存储桶

Google Cloud Storage 存储桶的扩展授权

Cloud Storage python客户端无法检索存储桶

无法从 Google Cloud Storage 存储桶中获取 Flutter 的 NetworkImage

无法获取Google Cloud Storage存储桶的位置

将源文件存储在Google Dataproc HDFS与Google Cloud Storage(Google存储桶)中

Dataproc不会导入存储在Google Cloud Storage存储桶中的Python模块

在 Google Cloud Storage 中的项目/存储桶之间同步文件

如何限制Google Cloud Storage存储桶的文件类型?

Google Cloud Storage存储桶->存在给出403

如何在Firebase Cloud Storage上创建存储桶

我的Google Cloud Storage存储桶中的文件在哪里?

如何设置公共Google Cloud Storage存储桶

向Google Cloud Storage存储桶提供用户项目

Google Cloud Storage多区域存储桶缓慢删除

从Google Cloud Storage存储桶进行pip安装

努力从 Google Cloud Storage 存储桶中读取 csv 文件

创建存储桶后,是否可以更改Google Cloud Storage存储桶类?

AccessDeniedException:403 没有 storage.buckets.get 访问 Google Cloud Storage 存储桶的权限

如何为Cloud Build用于Cloud Run部署的Cloud Storage存储桶指定区域?

为Google Cloud Storage存储桶启用Web服务器访问日志

向第三方授予对Google Cloud Storage存储桶的访问权限

使用globStatus和Google Cloud Storage存储桶作为输入时,无法运行Spark作业

Google Cloud Functions-Cloud Storage存储桶触发器延迟触发

如何使用Google Cloud Function将文件从Cloud Storage存储桶中推送到实例中?

从Google Cloud Function(Python)将新文件写入Google Cloud Storage存储桶

是否可以在Firebase / Google Cloud Storage存储桶上设置文件夹或存储桶级别的“ cacheControl”设置?

如何使用 gsutil 将文件从 Google Cloud Storage 存储桶 1 复制到存储桶 2,同时保留 ACL

IBM Cloud Object Storage 创建存储桶时出错 - “创建失败,存储库名称无效”。