2013-03-07 6 views
6

Ich fand nur, dass Reduce Amazons Elastic Map verwenden, ich einen Schritt einer von drei ActionOnFailure Entscheidungen zu haben angeben:Elastic Map Reduce: Unterschied zwischen CANCEL_AND_WAIT und CONTINUE?

  • TERMINATE_JOB_FLOW
  • CANCEL_AND_WAIT

TERMINATE_JOB_FLOW WEITER ist die Standardeinstellung und offensichtlich - es schließt den gesamten Cluster bei einem Fehler in dem Schritt.

Was ist der Unterschied zwischen CANCEL_AND_WAIT und CONTINUE? Es scheint mir, dass beide den Cluster am Laufen halten und einfach zum nächsten Schritt weitergehen, wenn er hinzugefügt wird.

Antwort

8

Sagen Sie einen Cluster ins Leben gerufen haben, und fügte hinzu, folgende drei Schritte, um es:

  • Schritt 1
  • Step2
  • Schritt 3

Nun, wenn Step1 ActionOnFailure als CANCEL_AND_WAIT hat, dann in das Ereignis bei Ausfall von Step1, würde es alle verbleibenden Schritte abbrechen und der Cluster wird in einebekommen 0 Status Und ich denke, wenn Sie Ihren Cluster mit --stay-alive Option laugen, dann ist dies das Standardverhalten.

wenn Step1 hat ActionOnFailure als CONTINUE, dann im Fall von Ausfällen Step1 wäre es weiter mit der Ausführung von Step2.

wenn Step1 ActionOnFailure als TERMINATE_JOB_FLOW hat, dann im Falle von Ausfällen Step1, würde es den Cluster heruntergefahren, wie Sie erwähnt.

+0

Danke! Das macht total Sinn - es ist dasselbe für mich, da ich in Boto nur neue Schritte hinzufüge, nachdem der vorherige abgeschlossen ist, also sind CANCEL_AND_WAIT und CONTINUE aus meiner Sicht die gleichen. – Suman

+0

Ich * denke *, dass sogar mit --Stay-Alive, TERMINATE_JOB_FLOW die Standardoption ist. Ich habe mehrere Stay-Alive-Cluster gestartet, und alle beenden, wenn einer der Schritte fehlschlägt. – Suman

+0

Es passiert nicht so für mich, alle hinzugefügten Schritte werden in den Status 'CANCELED' versetzt und der Cluster befindet sich in 'Waiting'. Vielleicht fehlt uns hier etwas. – Amar

Verwandte Themen