2015-04-20 2 views
5

Il mio programma, che ho eseguito numerose volte su diversi cluster, si interrompe improvvisamente. Il registro:Apache Spark on EC2 "Killed"

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 

Cosa significa "Ucciso" e perché si verifica? Non ci sono altri errori.

risposta

1

"Ucciso" di solito significa che il sistema operativo ha terminato il processo inviando un segnale SIGKILL. Questo è un segnale sbloccabile che termina immediatamente un processo. È spesso usato come un OOM (out-of-memory) del processo killer - se il sistema operativo decide che le risorse di memoria si stanno pericolosamente abbassando, può scegliere un processo da uccidere per provare a liberare della memoria.

Senza ulteriori informazioni, è impossibile stabilire se il processo è stato interrotto a causa di problemi di memoria o per altri motivi. Il tipo di informazioni che potresti essere in grado di fornire per aiutare a diagnosticare cosa sta succedendo include: per quanto tempo è stato in esecuzione il processo prima che venisse ucciso? puoi abilitare e fornire più output di debug dettagliato dal processo? la chiusura del processo è associata a un particolare modello di comunicazione o attività di elaborazione?

+0

Il processo è stato eseguito più volte per ore. Ora, tuttavia, si ferma dopo forse 20 secondi. Dice che c'è circa 255 Mb di memoria libera per nodo. Se lancio un nuovo cluster, funziona di nuovo bene. – monster

0

forse il problema vm

  1. garantire hai una partizione di swap.
  2. assicurarsi che vm.swappiness non sia zero.