2013-03-07 17 views
6

Ho appena scoperto che utilizzando Map elastico di Amazon Ridurre, posso specificare un passo per avere una delle tre scelte ActionOnFailure:Mappa elastica Ridurre: differenza tra CANCEL_AND_WAIT e CONTINUA?

  • TERMINATE_JOB_FLOW
  • CANCEL_AND_WAIT
  • CONTINUA

TERMINATE_JOB_FLOW è l'impostazione predefinita e ovvio: arresta l'intero cluster a causa di un errore nel passaggio.

Qual è la differenza tra CANCEL_AND_WAIT e CONTINUE? Mi sembra che entrambi manterranno il cluster in esecuzione e passeranno semplicemente al passaggio successivo quando viene aggiunto.

risposta

8

Diciamo che avete lanciato un cluster e ha aggiunto seguendo 3 passi ad esso:

  • Step1
  • Step2
  • Fase 3

Ora, se Step1 ha ActionOnFailure come CANCEL_AND_WAIT, poi in l'evento in caso di guasto di Step1, annullerebbe tutti i passaggi rimanenti e il cluster entrerà in un Waiting stato. E suppongo che se si interrompe il cluster con l'opzione --stay-alive, questo è il comportamento predefinito.

se Step1 ha ActionOnFailure come CONTINUE, quindi in caso in caso di fallimento di Step1, sarebbe continuare con l'esecuzione di Step2.

se Step1 ha ActionOnFailure come TERMINATE_JOB_FLOW, quindi in caso in caso di fallimento di Step1, che avrebbe chiuso il cluster come lei ha ricordato.

+0

Grazie! Tutto ciò ha un senso - è lo stesso per me allora, dato che in boto aggiungo solo nuovi passi dopo il precedente, quindi CANCEL_AND_WAIT e CONTINUE sono gli stessi dal mio punto di vista. – Suman

+0

I * penso * che anche con --stay-alive, TERMINATE_JOB_FLOW è l'opzione predefinita. Ho lanciato diversi cluster stay-alive e terminano tutti quando uno dei passaggi fallisce. – Suman

+0

Non succede così per me, tutti i passaggi aggiunti entrano nello stato 'CANCELLATO' e il cluster è in 'Attesa'. Forse c'è qualcosa che ci manca qui. – Amar