S3文件可由Hadoop访问,但不能由Spark访问

S3文件可由Hadoop访问,但不能由Spark访问,hadoop,amazon-s3,apache-spark,Hadoop,Amazon S3,Apache Spark,我在一台EC2机器上沿着Hadoop2.6运行Spark 1.4。 我配置了HADOOP_类路径和core-site.xml来访问我的S3文件 虽然Hadoop能够访问我的bucket中的文件,但是spark shell却失败了,并抛出了以下错误: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3native.NativeS3FileSystem not fou

我在一台EC2机器上沿着Hadoop2.6运行Spark 1.4。 我配置了HADOOP_类路径和core-site.xml来访问我的S3文件

虽然Hadoop能够访问我的bucket中的文件,但是spark shell却失败了,并抛出了以下错误:

 java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3native.NativeS3FileSystem not found
我尝试将aws JAR添加到类路径,但没有任何帮助

有人知道这可能来自哪里吗


谢谢

您需要在类路径中添加两个额外的jar文件

在你的星星之火中 --jar=aws-java-sdk-1.7.4.jar:hadoop-aws-2.6.0.jar

或者,您可以将以下内容添加到配置中: 例如spark.executor.extraClassPath和spark.driver.extraClassPath


此外,尝试使用“s3a://”,这是Hadoop中较新的S3库

此错误是在spark操作期间还是在启动spark shell时发生的?我认为它现在不起作用。JIRA罚单阻碍了这一功能的正常运行:如果只将jar
aws-java-sdk-1.7.4.jar
的名称放入
--jars
标志,这意味着什么?