apache-spark - 提供者 org.apache.hadoop.fs.s3a.S3AFileSystem 无法实例化

标签 apache-spark hadoop amazon-s3 filesystems

我正在尝试将模型学习从我的 Spark Standalone 集群保存到 S3。但是我有这个错误:

java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.fs.s3a.S3AFileSystem could not be instantiated
at java.util.ServiceLoader.fail(ServiceLoader.java:232)
at java.util.ServiceLoader.access$100(ServiceLoader.java:185)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at org.apache.hadoop.fs.FileSystem.loadFileSystems(FileSystem.java:2631)
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2650)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2667)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373)
at org.apache.spark.util.Utils$.getHadoopFileSystem(Utils.scala:1853)
at org.apache.spark.scheduler.EventLoggingListener.<init>(EventLoggingListener.scala:68)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:529)
at ALS$.main(ALS.scala:32)
at ALS.main(ALS.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.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:775)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.NoClassDefFoundError: com/amazonaws/event/ProgressListener
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
    at java.lang.Class.getConstructor0(Class.java:3075)
    at java.lang.Class.newInstance(Class.java:412)
    at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
    ... 23 more
Caused by: java.lang.ClassNotFoundException:com.amazonaws.event.ProgressListener
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 28 more

我已经在 spark-defaults.conf 的 extraClassPath 中添加了 Hadoop-aws aws-sdk

到目前为止我已经尝试过:我发送了我的 spark-submit 和一个由 sbt assembly 编译的 fat jar(我还在 sbt 中添加了这些依赖项)。我的 AWS 凭证在 master 环境中导出

知道我需要探索哪里来解决这个问题吗?

谢谢!

最佳答案

那是一个 aws 类,因此您将需要确保您的 CP 具有 *aws-java JAR 的确切集合您的 hadoop-aws JAR 是构建的反对。

mvnrepository列出这些依赖项。

我有一个项目,其人生的全部目标是解决 WTF 对 blobstore 连接器绑定(bind)的错误,cloudstore .您可以在 spark-shell 或真正的 spark 查询中使用它来帮助诊断。

关于apache-spark - 提供者 org.apache.hadoop.fs.s3a.S3AFileSystem 无法实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50354490/

相关文章:

apache-spark - 将2TB的压缩多行JSON转换为ND JSON

hadoop - 如何从 Hive 表中获取 lastaltertimestamp?

python - 我可以在本地计算机上使用Apache Spark处理100 GB的数据吗?

caching - 返回 RDD 的 Apache Spark 方法(带尾递归)

hadoop - 在启用 kerberos 的 CDH 集群中添加 Hbase 服务

python - 使用 boto3 从 S3 下载大文本文件

performance - Spark不忽略空分区

php - Amazon S3 为每个对象创建唯一键

apache-spark - 获取 Spark 数据框中所有分类变量的频率的有效方法是什么?

hadoop - yarn 容器启动失败失败异常和mapred-site.xml配置