Completo utilizzo di tutti i core in modalità pseudo-distribuita di Hadoop
Domanda
Sto eseguendo un'attività in modalità pseudo-distribuita sul mio laptop a 4 core. Come posso garantire che tutti i core siano effettivamente utilizzati. Attualmente il mio tracker di lavoro mostra che solo un lavoro sta eseguendo alla volta. Significa che viene utilizzato solo un nucleo?
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: Secondo la risposta, devo 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>
Soluzione
mapred.map.tasks
e mapred.reduce.tasks
controllerà questo e (credo) sarebbe ambientato mapred-site.xml
. Tuttavia, ciò stabilisce questi come impostazioni predefinite a livello cluster; Più di solito li configureresti su base per lavoro. È possibile impostare gli stessi parametri sulla riga di comando Java con -D
Altri suggerimenti
mapreduce.tasktracker.map.tasks.maximum
e mapreduce.tasktracker.reduce.tasks.maximum
Le proprietà controllano il numero di mappa e riducono le attività per nodo. Per un processore a 4 core, inizia con 2/2 e da lì modifica i valori se necessario. Uno slot è una mappa o una slot di riduzione, che imposta i valori su 4/4 farà il lancio del framework Hadoop 4 Mappa e 4 Ridurre le attività contemporaneamente. Un totale di 8 mappe e ridurre le attività eseguite alla volta su un nodo.
mapred.map.tasks
e mapred.reduce.tasks
Le proprietà controllano il numero totale di compiti MAP/Riduci per il lavoro e non il numero di attività per nodo. Anche, mapred.map.tasks
è un suggerimento per il framework Hadoop e il numero totale delle attività MAP per il lavoro è uguale al numero di input.