我正在尝试从" s3://fakePath/subFakePath/sub-sub-FakePath/*.gz"读取数据;进入我当地的火花。 我正在指定fs.s3a.access.key"和" fs.s3a.secret.key"在我的scala代码中使用
SqlContext.read()
我的classpath中也有hadoop-aws-2.7.1.jar。 我得到的错误是
java.util.ServiceConfigurationError:org.apache.hadoop.fs.FileSystem: 提供者org.apache.hadoop.fs.s3a.S3AFileSystem不可能 实例
我已经在StackOverflow上找到了关于这个问题的答案,但这似乎并没有解决我的问题。 如果有人能指出我所遗忘的那篇或者没有来到这里,我将非常感激。
答案 0 :(得分:0)
如果您使用Amazon EMR服务,则不会遇到此问题,因为所有jar都会被适当地添加到路径中。
如果s3a,s3n,s3文件系统无法实例化,则是由于aws-sdk jar不在路径中。
这里几个小时的调查是如何对我有用的,
./ spark-shell --master yarn-client --jars /usr/hdp/2.4.0.0-169/hadoop/hadoop-aws-2.7.1.2.4.0.0-169.jar,/usr/hdp/2.4.0.0-169/hadoop/hadoop-auth.jar,/usr /hdp/2.4.0.0-169/hadoop/aws-java-sdk-1.10.65.jar --driver-memory 512m --executor-memory 512m
希望它有所帮助。