如何在Amazon Elastic MapReduce中运行自定义jar时访问s3n中的文件

时间:2013-10-22 19:21:44

标签: hadoop amazon-s3 amazon-ec2

我在EMR的群集中运行以下步骤:

./ elastic-mapreduce -j CLUSTERID -jar s3n:// mybucket / somejar

                --main-class  SomeClass 
                --arg -conf --arg 's3n://mybucket/configuration.xml'

SomeClass是Hadoop作业并实现了Runnable接口。它读取configuration.xml的参数,但在上面的命令中,SomeClass无法访问“s3n://mybucket/configuration.xml”(未报告错误)。我试过“s3://mybucket/configuration.xml”但它也不起作用。我确信文件存在,因为我可以用“hadoop fs -ls s3n://mybucket/configuration.xml”看到它。对此问题的任何建议?

谢谢,

1 个答案:

答案 0 :(得分:0)

以下是尝试

的选项
  1. 使用s3代替s3n。

  2. 检查s3存储桶的访问权限。

  3. 您可以指定日志位置,并可以在作业后检查日志 你可以创建如下的工作

    elastic-mapreduce --create --name“j_flow_name” - log-uri“s3:// your_s3_bucket”

  4. 它为您提供了更多的调试信息。

    3

    ./elastic-mapreduce -j JobFlowId -jar s3://your_bucket --arg "s3://your_conf_file_bucket_name" --arg "second parameter"
    

    有关详细信息EMR CLI