2015-04-20 14 views
5

Mój program, który wielokrotnie kręciłem na różnych klastrach nagle się zatrzymuje. Dziennik:Apache Spark na EC2 "Zabity"

15/04/20 19:19:59 INFO scheduler.TaskSetManager: Finished task 12.0 in stage 15.0 (TID 374) in 61 ms on ip-XXX.compute.internal (16/24) 
15/04/20 19:19:59 INFO storage.BlockManagerInfo: Added rdd_44_14 in memory on ip-XXX.compute.internal:37999 (size: 16.0 B, free: 260.6 MB) 
Killed 

Co oznacza słowo "Killed" i dlaczego ono występuje? Nie ma innych błędów.

Odpowiedz

1

"Zabity" zwykle oznacza, że ​​system operacyjny zakończył proces, wysyłając sygnał SIGKILL. Jest to sygnał niemożliwy do zablokowania, który natychmiast kończy proces. Jest często wykorzystywany jako zabójca procesu OOM (poza pamięcią) - jeśli system operacyjny zdecyduje, że zasoby pamięci są niebezpiecznie niskie, może wybrać proces do zabicia, aby spróbować zwolnić trochę pamięci.

Bez dodatkowych informacji nie można stwierdzić, czy proces został zabity z powodu problemów z pamięcią, czy z innego powodu. Rodzaj informacji, które możesz podać, aby pomóc zdiagnozować, co się dzieje, to: jak długo trwa proces, zanim został zabity? czy możesz włączyć i dostarczyć bardziej szczegółowe wyniki debugowania z procesu? Czy zakończenie procesu jest powiązane z jakimkolwiek określonym wzorcem komunikacji lub przetwarzania?

+0

Proces ten był uruchamiany wiele razy przez wiele godzin. Teraz jednak zatrzymuje się po około 20 sekundach. Mówi, że jest około 255 MB wolnej pamięci na węzeł. Jeśli uruchomię nowy klaster, znów będzie działać poprawnie. – monster

0

może problem VM

  1. zapewnić masz partycję swap.
  2. zapewnić, że vm.swappiness nie jest zero.