Amazon Elastic MapReduce: выходной каталог

Я просматриваю пример запуска Elastic MapReduce на Amazon и получаю следующую ошибку:

Ошибка при запуске задания. Выходной путь уже существует.

Вот команда для запуска задания, которое я использую:

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

Вот откуда взялся пример

Я следую указаниям Amazon относительно выходного каталога. Имя сегмента - 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"
}

person Mark Peters    schedule 29.07.2012    source источник
comment
почему, ну почему S3 должен заставлять нас каждый раз создавать новый каталог?   -  person tumultous_rooster    schedule 15.06.2014


Ответы (3)


Задания hadoop не будут уничтожать уже существующие каталоги. Вам просто нужно запустить:

hadoop fs -rmr <output_dir>

перед работой просто используйте консоль AWS, чтобы удалить каталог.

person Paul M    schedule 30.07.2012
comment
Я удалил каталог перед запуском работы, но эта ошибка по-прежнему вызывает ошибку. - person Mark Peters; 30.07.2012
comment
Удалось ли вам убедиться, что он действительно был удален? - person Paul M; 30.07.2012
comment
попробуйте другой выходной каталог - person Animesh Raj Jha; 30.07.2012
comment
Пол, да, я проверил, что он был удален. Я пробовал удалить каталог и перезапустить. Я также пробовал использовать новое имя каталога (так что он будет создан как часть процесса). - person Mark Peters; 30.07.2012
comment
странный. Возможно ли, что у вас есть шаг, который выполняется перед командой elastic-mapreduce, которая создает каталог перед запуском вашего задания? Вы буквально указываете s3n: //mp.maptester321mark/ как выходной каталог? Если это так, вы можете указать папку, например s3n: //mp.maptester321mark/output. - person Paul M; 30.07.2012

Использовать:

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

вместо:

--output s3n://mp.maptester321mark/

Я полагаю, что EMR создает выходной сегмент перед запуском, а это означает, что у вас уже есть выходной каталог /, если вы укажете --output s3n://mp.maptester321mark/, и это может быть причиной, по которой вы получаете эту ошибку.

person Hiroshi Ayukawa    schedule 01.12.2012

---> Если папка (корзина) уже существует, удалите ее.

---> Если вы удалите его, но по-прежнему получаете указанную выше ошибку, убедитесь, что ваш результат такой s3n: // some_bucket_name / your_output_bucket, если он у вас такой s3n: // your_output_bucket / это проблема с EMR !! поскольку я думаю, он сначала создает ведро на пути (some_bucket_name), а затем пытается создать (your_output_bucket).

Спасибо, Хари

person hbr    schedule 16.09.2013