如何使用java代码中的s3数据输入Mapreduce作业

时间:2012-12-05 08:29:04

标签: input amazon-s3 amazon-web-services mapreduce

我知道我们通常可以在EC2实例

中运行jar文件时提供参数

但我们如何通过代码提供输入?
我正在尝试这个,因为我试图从jsp调用我的java代码,所以在java代码中,我想直接从s3中获取数据并继续,我尝试这样但是徒劳:

DataExtractor.getRelevantData("s3n://syamk/revanthinput/", "999999", "94645", "20120606",
             "s3n://revanthufl/gen/testoutput" + "interm");

此处s3n://syamk/revanthinput/我使用的是输入,而不是s3n://revanthufl/gen/testoutput 我正在使用输出,在参数中我使用相同的字符串(s3n://syamk/revanthinput/s3n://revanthufl/gen/testoutput)来运行jar。但是从代码中执行这样的操作就是抛出异常,

  

[java.lang.IllegalArgumentException:必须将AWS Access Key ID和Secret Access Key指定为s3n URL的用户名或密码,或者通过设置fs.s3n.awsAccessKeyId或fs.s3n.awsSecretAccessKey属性(分别)。]有根本原因

1 个答案:

答案 0 :(得分:0)

根据我对水槽的使用情况,您似乎需要在代码中调用s3时格式化您的网址s3n://AWS_ACCESS_KEY:AWS_SECRET_KEY@syamk/revanthinput/