Voglio uccidere tutti i miei lavori hadoop automaticamente quando il mio codice incontra un'eccezione non gestita. Mi chiedo quale sia la migliore pratica per farlo?come uccidere job hadoop
Grazie
Voglio uccidere tutti i miei lavori hadoop automaticamente quando il mio codice incontra un'eccezione non gestita. Mi chiedo quale sia la migliore pratica per farlo?come uccidere job hadoop
Grazie
Un'eccezione sarà (supponendo che è ripetibile come dati pertinenti al contrario di errori di lettura da un particolare nodo di dati) eventualmente sicuro il lavoro comunque.
È possibile configurare il numero massimo di volte una determinata mappa o ridurre compito può non prima che l'intero processo ha esito negativo per le seguenti proprietà:
mapred.map.max.attempts
- Il numero massimo di tentativi per mappa compito. In altre parole, il framework proverà ad eseguire un compito della mappa tante volte prima di rinunciare ad esso.mapred.reduce.max.attempts
- Come sopra, ma per ridurre i compitiSe si vuole fallire il lavoro fuori al primo fallimento, impostare questo valore dal valore predefinito di 4 a 1.
A seconda la versione, fare:
versione < 2.3.0
uccidere un lavoro in Hadoop:
hadoop job -kill $jobId
È possibile ottenere un elenco di fare tutto di jobId:
hadoop job -list
versione> = 2.3.0
uccidere un lavoro in Hadoop:
yarn application -kill $ApplicationId
È possibile ottenere un elenco di tutti i ApplicationId fare:
yarn application -list
Also mapred job -kill $ jobId –
Basta con forza uccidere l'ID del processo, il lavoro Hadoop sarà anche ucciso automaticamente. Utilizzare questo comando:
kill -9 <process_id>
eg: process ID no: 4040 namenode
[email protected]:~$ kill -9 4040
L'uso del comando folloing è ammortizzata
hadoop job -list
hadoop job -kill $jobId
considerano utilizzando
mapred job -list
mapred job -kill $jobId
Non funziona e restituisce il seguente errore: Eccezione nella discussione "main" java.lang.IllegalArgumentException: stringa JobId: application_1470941878165_0001 non è formata correttamente – tribbloid
Run list
per mostrare tutti i posti di lavoro, quindi utilizzare il jobID/applicationID nell'appropriato c ommand.
Uccidi mapred impiego: Lavoro filato
mapred job -list
mapred job -kill <jobId>
uccisioni:
yarn application -list
yarn application -kill <ApplicationId>
Ma questo causerà anche un lavoro a fallire se un nodo muore ei suoi compiti fallire, anche se non esiste alcuna eccezione gettata , destra? Tuttavia, credo che questa sia davvero la soluzione più vicina a ciò che l'OP vuole. – vefthym