2011-12-02 8 views
8

Mam uruchomione zadanie w trybie pseudo-rozproszonym na moim 4 rdzeniowym laptopie. Jak mogę zapewnić efektywne wykorzystanie wszystkich rdzeni? Obecnie mój program do śledzenia zadań pokazuje, że tylko jedno zadanie jest wykonywane jednocześnie. Czy to oznacza, że ​​używany jest tylko jeden rdzeń?Pełne wykorzystanie wszystkich rdzeni w trybie pseudo-rozproszonym Hadoop

Poniżej znajdują się moje pliki konfiguracyjne.

conf/rdzenia 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> 

Edycja : Zgodnie z odpowiedzią, muszę dodać następujące właściwości w pliku 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 i mapred.reduce.tasks nie kontrolują # mapy/zmniejsz liczbę zadań na węzeł. Przed wyborem odpowiedzi proszę się upewnić. –

+0

@Praveen to prawda, ale ponieważ ma 1 węzeł, będzie musiał przynajmniej zasugerować, aby używał więcej mapujących, a nie tylko podnosić maksimum na tracker. –

+0

@Nemo Oprócz dodania wartości mapowanych. (Map | reduce) .tasks wynoszącej 4 w mapred-site.xml, zmieniłeś wartości mapreduce.tasktracker. (Map | reduce) .tasks.maximum, aby w pełni wykorzystywać wszystkie rdzenie? – AST

Odpowiedz

3

mapred.map.tasks i mapred.reduce.tasks będą kontrolować to i (wierzę) zostaną ustawione w mapred-site.xml. Jednakże określa to jako domyślne wartości w całym klastrze; częściej konfiguruje się je na podstawie poszczególnych zadań. Można ustawić te same parametry w wierszach poleceń java z parametrami -D

+0

Ile zadań mapowania i redukcji byłoby optymalnych dla systemu 4-rdzeniowego? – Nemo

+0

4 prawdopodobnie byłby dobrym początkiem - chociaż szybko można uzyskać I/O związane na jednym komputerze, a nie na CPU. –

+0

Myślę, że to nowy problem. http://stackoverflow.com/questions/8357630/error-when-setting-mapred-map-tasks-in-pseudo-distributed-mode – Nemo

6

mapreduce.tasktracker.map.tasks.maximum i mapreduce.tasktracker.reduce.tasks.maximum, które kontrolują liczbę map i zmniejszają liczbę zadań na węzeł. W przypadku procesora 4-rdzeniowego rozpocznij od 2/2, a następnie zmień wartości, jeśli to konieczne. Slot jest mapą lub slotem redukującym, ustawienie wartości na 4/4 sprawi, że framework Hadoop uruchomi 4 mapy i 4 zmniejszy zadania jednocześnie. Łącznie 8 map i zmniejsz liczbę zadań uruchamianych jednocześnie w węźle.

mapred.map.tasks i mapred.reduce.tasks właściwości kontrolować całkowitą liczbę mapę/zmniejszenia zadań do pracy, a nie # zadań na węźle. Ponadto, mapred.map.tasks jest wskazówką dla frameworku Hadoop, a suma # zadań mapy dla zadania jest równa # InputSplits.

Powiązane problemy