将S3 loaction作为参数传递给hadoop jar

时间:2016-01-11 10:03:50

标签: hadoop mapreduce

我想将Amazon S3中的文件位置作为参数传递给我的Hadoop jar.That文件包含一个XML文件,我需要在map-reduce中解析我的驱动程序类中的XML文件。怎样才能我通过那个位置?在哪里指定S3凭证?

2 个答案:

答案 0 :(得分:0)

您无法使用s3n位置运行MR作业。将您的jar文件上传并输入到S3并按elastic-mapreduce运行,如下所示:

elastic-mapreduce --jar s3://mybucket/mycode.jar \
    --args "-D,mapred.reduce.tasks=0"
    --arg s3://mybucket/input \
    --arg s3://mybucket/output

答案 1 :(得分:0)

您需要在配置文件(例如mapred-site.xml or core-site.xml)中设置s3凭据,或者您可以使用-conf使用自定义配置文件传递以下参数。您的hadoop jar命令看起来像hadoop jar <jar_file_name> <class_name> -conf <custom_conf> <arguments>

<property>
<name>fs.s3n.awsAccessKeyId</name>
<value>AWS-ID</value>
</property>
<property>
<name>fs.s3n.awsSecretAccessKey</name>
<value>AWS-SECRET-KEY</value>
</property>