Chcę zabić wszystkie moje zadania hasoop automatycznie, gdy mój kod napotka nieobsługiwany wyjątek. Zastanawiam się, jaka jest najlepsza praktyka, aby to zrobić?Jak zabić zadania hadoopowe
Dzięki
Chcę zabić wszystkie moje zadania hasoop automatycznie, gdy mój kod napotka nieobsługiwany wyjątek. Zastanawiam się, jaka jest najlepsza praktyka, aby to zrobić?Jak zabić zadania hadoopowe
Dzięki
nieobsługiwany wyjątek będzie (zakładając, że powtarzalne jak złych danych, w przeciwieństwie do błędów odczytu z danego węzła danych) ostatecznie nie zadanie tak.
Można skonfigurować maksymalną liczbę razy określonej mapy lub zmniejszyć zadanie może zawieść zanim nie cała praca przez następujące właściwości:
mapred.map.max.attempts
- Maksymalna liczba prób na mapie zadania. Innymi słowy, framework spróbuje wykonać zadanie mapowania wiele razy, zanim się go zrezygnuje.mapred.reduce.max.attempts
- jw, ale dla zmniejszenia zadańJeśli chcesz zawieść pracę przy pierwszej awarii, ustaw tę wartość z jej domyślnie 4 do 1.
zależności od wersja, wykonaj następujące czynności:
wersja < 2.3.0
zabić zadanie Hadoop:
hadoop job -kill $jobId
Można uzyskać listę robią wszystko jobid za:
hadoop job -list
wersji> = 2.3.0
zabić zadanie Hadoop:
yarn application -kill $ApplicationId
Możesz uzyskać listę wszystkich ApplicationId robienie:
yarn application -list
Również zadanie odwzorowane -kill $ jobId –
Po prostu wymusić na ID procesu, zadanie hadoop zostanie automatycznie zabity. Użyj tego polecenia:
kill -9 <process_id>
eg: process ID no: 4040 namenode
[email protected]:~$ kill -9 4040
Użycie polecenia folloing są amortyzowane
hadoop job -list
hadoop job -kill $jobId
rozważyć użycie
mapred job -list
mapred job -kill $jobId
Nie działa i powoduje następujący błąd: Wyjątek w wątku "główny" java.lang.IllegalArgumentException: Ciąg JobId: application_1470941878165_0001 nie został poprawnie utworzony – tribbloid
Uruchom list
pokazać wszystkie zadania, a następnie użyć jobID/applicationID w odpowiednim c ommand.
Zabij mapred pracy:
mapred job -list
mapred job -kill <jobId>
Zabij przędzy pracy:
yarn application -list
yarn application -kill <ApplicationId>
Ale to spowoduje również praca na niepowodzenie, jeśli jeden węzeł umiera, a jej zadania nie, nawet jeśli nie ma wyjątków rzucony , dobrze? Uważam jednak, że jest to rzeczywiście najbliższe rozwiązanie tego, co chce OP. – vefthym