2013-03-07 25 views
6

Właśnie okazało się, że przy użyciu Amazon Elastic Map Reduce, mogę podać krok, aby mieć jedną z trzech opcji ActionOnFailure:Elastyczna mapa Zmniejsz: różnica między CANCEL_AND_WAIT i CONTINUE?

  • TERMINATE_JOB_FLOW
  • CANCEL_AND_WAIT
  • CONTINUE

TERMINATE_JOB_FLOW jest domyślnym i oczywiste - wyłącza cały klaster po niepowodzeniu w kroku.

Jaka jest różnica między CANCEL_AND_WAIT i CONTINUE? Wydaje mi się, że oba będą utrzymywać klaster uruchomiony i po prostu przejdą do następnego kroku, kiedy zostanie dodany.

Odpowiedz

8

że masz uruchomiony klaster i dodaje się następujące 3 kroki do niego:

  • STEP1
  • Krok 2
  • step3

Teraz, jeśli Step1 ma ActionOnFailure jak CANCEL_AND_WAIT, a następnie w zdarzenie po niepowodzeniu Step1, anulowałoby wszystkie pozostałe kroki, a klaster uzyskałby Waiting status. Przypuszczam, że jeśli wybierzesz klaster z opcją --stay-alive, jest to zachowanie domyślne.

jeśli Step1 ma ActionOnFailure jak CONTINUE, a następnie w razie awarii na Step1, byłoby kontynuować z realizacją Step2.

jeśli Step1 ma ActionOnFailure jako TERMINATE_JOB_FLOW, a następnie w razie awarii na Step1, byłoby zamknięcie klastra jak wspomniano.

+0

Dzięki! To całkowicie ma sens - jest to dla mnie takie samo, ponieważ w boto dodam tylko nowe kroki po zakończeniu poprzedniego, więc CANCEL_AND_WAIT i CONTINUE są takie same z mojej perspektywy. – Suman

+0

* Myślę, że * nawet przy opcji --stay-alive, TERMINATE_JOB_FLOW jest opcją domyślną. Uruchomiłem kilka klastrów z podtrzymaniem, które kończą się, gdy jeden z kroków się nie powiedzie. – Suman

+0

Nie dzieje się tak dla mnie, wszystkie dodane kroki przechodzą w stan "ANULOWANE", a klaster znajduje się w polu "Oczekiwanie". Być może czegoś tu brakuje. – Amar