如何让 Amazon EMR (0.20.205 MapR) 使用 S3 存储桶进行输入和输出?
我尝试将以下内容添加到核心配置 xml 文件(通过引导操作):
<property>
<name>fs.default.name</name>
<value>s3n://</value>
</property>
<property>
<name>dfs.name.default</name>
<value>s3n://</value>
</property>
但我总是得到这样的东西:
Caused by: java.io.IOException: Could not resolve path: s3n://some_out_bucket/out at com.mapr.fs.MapRFileSystem.lookupClient(MapRFileSystem.java:219) at com.mapr.fs.MapRFileSystem.delete(MapRFileSystem.java:385) at cc.mrlda.ParseCorpus.run(ParseCorpus.java:192) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) at cc.mrlda.ParseCorpus.main(ParseCorpus.java:675) ... 10 more
这里是 Hadoop 新手。请帮忙!
最佳答案
除了上面问题中描述的配置步骤之外,我还修改了代码:
FileSystem fs = FileSystem.get(URI.create(outputPath), new JobConf(SomeClass.class));
其中 outputPath
指向 S3 上的资源,例如s3n://some_bucket
使用 URI.create
,我现在可以直接从 S3 访问文件。
关于amazon-web-services - 让 Amazon EMR 使用 S3 进行输入和输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12249657/