2016-08-23 4 views
1

Я столкнулся с проблемой и подумал о том, на какой вопрос я не нашел ответа. И это значит, Как я могу преднамеренно сделать шаг AWS EMR? У меня есть скрипт Spark Scala, который добавляется как шаг Spark с некоторыми аргументами командной строки, а вывод скрипта записывается в S3.Как вручную сделать шаг AWS EMR сбой

Но если что-то пойдет не так, прочитав и обработав аргументы командной строки, тогда логика сценария будет пропущена, а скрипт закончится. Но для EMR это нормальное поведение, он не знает, что блок if не был введен.

И после «неудачного» запуска статус шага по-прежнему изменяется на «Завершено», и кажется, что он был успешным без того, что результаты были записаны на S3.

Я хочу завершить шаг так, чтобы он находился в состоянии «Сбой».

Я могу сделать это, выбросив исключение, а затем я увижу соответствующее исключение с моим сообщением в журналах ошибок шага EMR. Но есть ли лучший способ? Я хотел бы обойти все свои исключения самостоятельно, вручную.

И кроме того, могу ли я использовать AWS SDK, чтобы как-то программно узнать причину отказа шага?

ответ

1

Возврат ненулевое значения из вашей программы

+0

К сожалению, у меня нет доступа к AWS ОМУ в настоящее время больше (и не видит смысла в создании личной учетной записи AWS только для тестирования этого ответа, так Я бы отметил это правильно, поскольку это имеет смысл. Если бы кто-то мог проверить это, я был бы признателен! –

+0

Привет, Я столкнулся с аналогичной проблемой, но в моем случае я вставляю сообщение журнала в dynamoDB перед возвратом -1 (System.exit (-1)). Шаг не выполняется, но эта запись в dynamoDB вставлена ​​дважды. –