【发布时间】:2015-01-19 16:23:42
【问题描述】:
我正在尝试在我的本地计算机上重现 Amazon EMR 集群。为此,我安装了latest stable version of Hadoop as of now - 2.6.0。 现在我想访问一个 S3 存储桶,就像我在 EMR 集群中所做的那样。
我已在 core-site.xml 中添加了 aws 凭据:
<property>
<name>fs.s3.awsAccessKeyId</name>
<value>some id</value>
</property>
<property>
<name>fs.s3n.awsAccessKeyId</name>
<value>some id</value>
</property>
<property>
<name>fs.s3.awsSecretAccessKey</name>
<value>some key</value>
</property>
<property>
<name>fs.s3n.awsSecretAccessKey</name>
<value>some key</value>
</property>
注意:由于键上有一些斜线,我用 %2F 转义了它们
如果我尝试列出存储桶的内容:
hadoop fs -ls s3://some-url/bucket/
我收到此错误:
ls: No FileSystem for scheme: s3
我再次编辑了core-site.xml,并添加了与fs相关的信息:
<property>
<name>fs.s3.impl</name>
<value>org.apache.hadoop.fs.s3.S3FileSystem</value>
</property>
<property>
<name>fs.s3n.impl</name>
<value>org.apache.hadoop.fs.s3native.NativeS3FileSystem</value>
</property>
这次我得到一个不同的错误:
-ls: Fatal internal error
java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3.S3FileSystem not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2074)
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2578)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
不知何故,我怀疑 Yarn 发行版没有必要的 jar 来读取 S3,但我不知道从哪里获得这些。任何指向这个方向的指针都将不胜感激。
【问题讨论】:
标签: hadoop amazon-web-services amazon-s3 hadoop-yarn hadoop2