如何让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>
但我总是得到类似的东西:
引起:java.io.IOException:无法解析路径: s3n:// some_out_bucket / out at com.mapr.fs.MapRFileSystem.lookupClient(MapRFileSystem.java:219)at at com.mapr.fs.MapRFileSystem.delete(MapRFileSystem.java:385)at 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更多
Hadoop新手在这里。请帮忙!
答案 0 :(得分:2)
除了上面问题中描述的配置步骤,我修改了代码:
FileSystem fs = FileSystem.get(URI.create(outputPath), new JobConf(SomeClass.class));
其中outputPath
指向S3上的资源,例如s3n://some_bucket
使用URI.create
,我现在可以直接从S3访问文件。