/ / Come configurare lo spazio heap della memoria java per hadoop mapreduce? - java, hadoop, mapreduce, heap, shuffle

Come configurare lo spazio heap della memoria java per haadoop mapreduce? - java, hadoop, mapreduce, heap, shuffle

Ho provato a eseguire un processo mapreduce su circa 20 GBdati e ho riscontrato un errore nel ridurre la fase shuffle. Lo dice a causa dello spazio di memoria heap. Poi, ho letto su molte fonti, che devo ridurre la proprietà mapreduce.reduce.shuffle.input.buffer.percent su mapred-site.xml con il valore predefinito 0,7. Quindi, lo riduco a 0, 2.

Voglio chiedere, è che la proprietà influisce sulle prestazioni temporali del mio lavoro con mapreduce. Quindi, come posso configurare correttamente per fare in modo che il mio lavoro mapreduce non ottenga mai un errore?

risposte:

0 per risposta № 1

mapreduce.reduce.shuffle.input.buffer.percent 0.70 La percentuale di memoria da allocare dalla dimensione massima dell'heap alla memorizzazione degli output della mappa durante la riproduzione casuale. Da ciò sembra che se lo si riduce a un valore arbitrario, si potrebbe degradare l'esecuzione della fase shuffle. Ci sarebbero stati alcuni ragionamenti e prove dietro il valore predefinito Puoi controllare altre proprietà correlate qui http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

Qual è l'output di dati approssimativo dei tuoi mappatori, Se questo è enorme, potresti voler aumentare il numero di mappatori Allo stesso modo se il numero di riduttori è basso, è probabile che si verifichi un errore nello spazio di heap durante la fase di riduzione.

potresti voler controllare i contatori di lavoro e aumentare il numero di mappatori / riduttori puoi anche provare ad aumentare la memoria del mapper / riduttore impostando le proprietà mapreduce.reduce.memory.mb e mapreduce.map.memory.mb