2

我正在运行 Amazon 运行 Elastic MapReduce 的示例,并不断遇到以下错误:

启动作业时出错,输出路径已存在。

这是运行我正在使用的作业的命令:

C:\ruby\elastic-mapreduce-cli>ruby elastic-mapreduce --create --stream \
     --mapper  s3://elasticmapreduce/samples/wordcount/wordSplitter.py \
     --input   s3://elasticmapreduce/samples/wordcount/input \
     --output  [A path to a bucket you own on Amazon S3, such as, s3n://myawsbucket] \
     --reducer aggregate

这是示例的来源here

我正在按照亚马逊关于输出目录的说明进行操作。存储桶名称是s3n://mp.maptester321mark/。我已经查看了他们对这个 url问题的所有建议

这是我的credentials.json信息:

{
"access_id": "1234123412",
"private_key": "1234123412",
"keypair": "markkeypair",
"key-pair-file": "C:/Ruby/elastic-mapreduce-cli/markkeypair",
"log_uri": "s3n://mp-mapreduce/",
"region": "us-west-2"
}
4

3 回答 3

4

利用:

--output s3n://mp.maptester321mark/output

代替:

--output s3n://mp.maptester321mark/

我想 EMR 在运行之前会生成输出存储桶,这意味着您已经拥有输出目录 / 如果您指定--output s3n://mp.maptester321mark/了,这可能是您收到此错误的原因。

于 2012-12-01T03:06:45.587 回答
4

hadoop 作业不会破坏已经存在的目录。你只需要运行:

hadoop fs -rmr <output_dir>

在您的工作之前,只需使用 AWS 控制台删除目录。

于 2012-07-30T00:49:36.503 回答
0

---> 如果文件夹(存储桶)已经存在,则将其删除。

---> 如果您删除它并且仍然收到上述错误,请确保您的输出类似于 s3n://some_bucket_name/your_output_bucket 如果您有这样的 s3n://your_output_bucket/ 它是 EMR 的问题!!因为我认为它首先在路径(some_bucket_name)上创建存储桶,然后尝试创建(your_output_bucket)。

谢谢哈里

于 2013-09-16T16:54:51.517 回答