2015-03-12 15 views
8

Voglio provare ad impostare la memoria in YARN, quindi proverò a configurare alcuni parametri su yarn-site.xml e mapred-site.xml. Dal modo in cui utilizzo hadoop 2.6.0. Ma ottengo un errore quando eseguo un lavoro di ridimensionamento della mappa. Dice così:Perché errore memoria spazio java heap YARN?

15/03/12 10:57:23 INFO mapreduce.Job: Task Id : 
attempt_1426132548565_0001_m_000002_0, Status : FAILED 
Error: Java heap space 
Container killed by the ApplicationMaster. 
Container killed on request. Exit code is 143 
Container exited with a non-zero exit code 143 

Penso che ho configurato bene, io do map.java.opts e reduce.java.opts la piccola dimensione = 64 MB. Ho provato a configurare alcuni parametri quindi, come cambiare il map.java.opts e reduce.java.opts su mapred-site.xml, e ho ancora questo errore. Penso di non capire veramente come funzioni la memoria dei FILATI. A proposito, provo su un computer con un singolo nodo.

+0

64MB è molto piccolo. Prova 1 GB come punto di partenza. –

+0

In mente, che cosa causa questo errore? Ho impostato 64 MB perché la memoria del mio computer è molto piccola. 64 MB è giusto per il processo java, se è inferiore a yarn.app.mapreduce.am.command-opts o yarn.app.mapreduce.am.resource.mb. Per favore, dammi una spiegazione ... Grazie mille –

risposta

8

Il filato gestisce la gestione delle risorse e supporta anche carichi di lavoro batch che possono utilizzare MapReduce e carichi di lavoro in tempo reale.

Ci sono impostazioni di memoria che possono essere impostate al livello del contenitore del filato e anche al livello del mappatore e del riduttore. La memoria è richiesta in incrementi della dimensione del contenitore del filato. Le attività di mapping e riduttore vengono eseguite all'interno di un contenitore.

mapreduce.map.memory.mb e mapreduce.reduce.memory.mb

suddetti parametri descrivono limite di memoria superiore per la mappa-ridurre compito e se la memoria sottoscritto da questo compito supera questo limite, la il contenitore corrispondente sarà ucciso.

Questi parametri determinano la quantità massima di memoria che può essere assegnata al programma di mappatura e riduce le attività rispettivamente. Vediamo un esempio: Il mapper è associato a un limite superiore per la memoria definito nel parametro di configurazione mapreduce.map.memory.mb.

Tuttavia, se il valore per yarn.scheduler.minimum-assegnazione-mb è superiore a questo valore di mapreduce.map.memory.mb, poi i yarn.scheduler.minimum-assegnazione-mb è rispettato e vengono consegnati i contenitori di quelle dimensioni.

Questo parametro deve essere impostato con attenzione e, se non impostato correttamente, ciò potrebbe causare prestazioni errate o errori OutOfMemory.

mapreduce.reduce.java.opts e mapreduce.map.java.opts

Questo valore della proprietà deve essere inferiore al limite superiore per la mappa/ridurre compito come definito mapreduce.map.memory .mb/mapreduce.reduce.memory.mb, poiché dovrebbe rientrare nell'allocazione di memoria per la mappa/ridurre l'attività.

+0

Grazie mille signor Gaurav per il tuo aiuto.A proposito, voglio chiedere di nuovo, è il numero del contenitore della mappa in base al numero del compito della mappa? Ad esempio il numero di attività della mappa è 7, quindi se ho anche un contenitore di 5 mappe? È vero se il contenitore della mia mappa, dopo aver terminato l'attività con una sola mappa, eseguirà un'altra attività della mappa senza creare un nuovo contenitore? Grazie mille ... –

+0

Ciao Kenny, non ho ricevuto la tua domanda. Potresti elaborarlo. –

+0

Ciao kenny, ti preghiamo di leggere questo link per aiutarti. http://hortonworks.com/blog/how-to-plan-and-configure-yarn-in-hdp-2-0/ –

2

Ciò che @Gaurav ha detto è corretto. ho avuto problema simile, ho provato qualche cosa come below.Include sotto immobili a yarn-site.xml e riavviare VM

<property> 
<name>yarn.nodemanager.vmem-check-enabled</name> 
<value>false</value> 
<description>Whether virtual memory limits will be enforced for containers</description> 
</property> 

<property> 
<name>yarn.nodemanager.vmem-pmem-ratio</name> 
<value>4</value> 
<description>Ratio between virtual memory to physical memory when setting memory limits for containers</description> 
</property> 
Problemi correlati