Sto distribuendo un lavoro di elaborazione dati Spark su un cluster EC2, il lavoro è piccolo per il cluster (16 core con 120G RAM in totale), il più grande RDD ha solo 76k + righe. Ma fortemente distorto nel mezzo (quindi richiede il ripartizionamento) e ogni riga ha circa 100k di dati dopo la serializzazione. Il lavoro è sempre rimasto bloccato nel ripartizionamento. Vale a dire, il lavoro sarà costantemente ottenere seguenti errori e tentativi:Quali sono le probabili cause di org.apache.spark.shuffle.MetadataFetchFailedException: Manca un'ubicazione di output per shuffle?
org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle
org.apache.spark.shuffle.FetchFailedException: Error in opening FileSegmentManagedBuffer
org.apache.spark.shuffle.FetchFailedException: java.io.FileNotFoundException: /tmp/spark-...
ho cercato di identificare il problema ma sembra che sia il consumo di memoria e disco della macchina gettando questi errori sono al di sotto del 50%. Ho anche provato diverse configurazioni, tra cui:
let driver/executor memory use 60% of total memory.
let netty to priortize JVM shuffling buffer.
increase shuffling streaming buffer to 128m.
use KryoSerializer and max out all buffers
increase shuffling memoryFraction to 0.4
Ma nessuno di loro funziona. Il lavoro di piccole dimensioni genera sempre la stessa serie di errori e tentativi di max out (fino a 1000 volte). Come risolvere questa cosa in tale situazione?
Grazie mille se avete qualche idea.
Grazie mille! Il mio problema è che sto semplicemente usando il master Spark Standalone. L'executor perso è davvero un problema per il grande shuffling, poiché ognuno impiega molto tempo a scrivere in una memoria non persistente e, una volta perso, deve essere ricominciato. Sto indagando se il checkpoint frequente può risolvere il problema – tribbloid
Hai avuto un'idea di questo? – raam86
Ho riscritto il mio flusso di lavoro da GC un po 'di RDD persistente manualmente e sostituendo altro persist() con checkpoint() per liberare più memoria e spazio. È scomparso per il momento. Ma considerando il profilo della memoria/consumo del disco quando si è verificato un errore, non dovrebbe accadere in primo luogo.Aggiornerò quando lo incontrerò di nuovo – tribbloid