2011-12-02 7 views
8

Sto eseguendo un'attività in modalità pseudo-distribuita sul mio computer portatile a 4 core. Come posso garantire che tutti i core siano effettivamente utilizzati. Attualmente il mio job tracker mostra che un solo lavoro è in esecuzione alla volta. Ciò significa che viene utilizzato solo un core?Utilizzo completo di tutti i core in modalità pseudo-distribuita Hadoop

I seguenti sono i miei file di configurazione.

conf/core-site.xml:

<configuration> 
    <property> 
     <name>fs.default.name</name> 
     <value>hdfs://localhost:9000</value> 
    </property> 
</configuration> 

conf/HDFS-site.xml:

<configuration> 
    <property> 
     <name>dfs.replication</name> 
     <value>1</value> 
    </property> 
</configuration> 

conf/mapred-site.xml:

<configuration> 
    <property> 
     <name>mapred.job.tracker</name> 
     <value>localhost:9001</value> 
    </property> 

</configuration> 

EDIT : Come per la risposta, ho bisogno di aggiungere le seguenti proprietà in mapred-site.xml

<property> 
    <name>mapred.map.tasks</name> 
    <value>4</value> 
    </property> 
    <property> 
    <name>mapred.reduce.tasks</name> 
    <value>4</value> 
    </property> 
+0

mapred.map.tasks e mapred.reduce.tasks non controllano il # di mappa/riducono le attività per nodo. Si prega di provare e assicurarsi prima di selezionare una risposta. –

+0

@Praveen che è corretto ma dal momento che ha 1 nodo dovrà almeno suggerire ad esso di utilizzare anche più mappatori non solo aumentare il limite per tracker. –

+0

@Nemo Oltre ad aggiungere i valori mapred (map | reduce) .tasks di 4 in mapred-site.xml, hai modificato i valori di mapreduce.tasktracker. (Map | reduce) .tasks.maximum per utilizzare tutti i core? – AST

risposta

3

mapred.map.tasks e mapred.reduce.tasks controllerà questo, e (credo) dovrebbe essere impostato nel mapred-site.xml. Tuttavia questo stabilisce questi come valori predefiniti a livello di cluster; più solitamente le configureresti in base al lavoro. È possibile impostare gli stessi parametri sulla riga di comando java con -D

+0

Quante mappe e attività di riduzione sarebbero ottimali per un sistema a 4 core? – Nemo

+0

4 sarebbe probabilmente un buon inizio - sebbene si possa essere rapidamente I/O vincolati su una macchina anziché vincolati alla CPU. –

+0

Penso che questo sia il nuovo problema. http://stackoverflow.com/questions/8357630/error-when-setting-mapred-map-tasks-in-pse-distributed-mode – Nemo

6

mapreduce.tasktracker.map.tasks.maximum e mapreduce.tasktracker.reduce.tasks.maximum proprietà controllare il numero di mappa e ridurre le attività per nodo. Per un processore a 4 core, iniziare con 2/2 e da lì modificare i valori, se necessario. Uno slot è una mappa o uno slot di riduzione, impostando i valori su 4/4 farà in modo che il framework Hadoop lanci 4 mappe e 4 riduca le attività contemporaneamente. Un totale di 8 mappe e attività di riduzione eseguite alla volta su un nodo.

mapred.map.tasks e mapred.reduce.tasks proprietà controllano il numero totale di mappa/ridurre le attività per il lavoro e non il numero di attività per nodo. Inoltre, mapred.map.tasks è un suggerimento per il framework Hadoop e il numero totale di attività della mappa per il lavoro è uguale al numero di InputSplits.