кластер hadoop: задача карты выполняется только на одном компьютере, а не на всех - PullRequest
2 голосов
/ 26 октября 2011

У меня есть hadoop cluster of three machines, где одна машина действует как ведущая и ведомая.

Когда я запускаю wordcount-example , он запускает задачи карты на двух машинах - worker1 и worker2. Но когда я запускаю свой собственный код, он запускается только на одной машине - worker1, как я могу заставить задачи карты работать на всех машинах?

Input Split Locations

/default-rack/master
/default-rack/worker1
/default-rack/worker2  

ИСПРАВЛЕНО !!!

Я добавил следующее в мою конфигурацию mapred-site.xml, и она исправила

<property>
  <name>mapred.map.tasks</name>
  <value>100</value>
</property>

1 Ответ

1 голос
/ 26 октября 2011

Насколько велик ваш вклад?Hadoop разделяет задания на входные разбиения, и если ваш файл слишком мал, у него будет только одно разбиение.

Попробуйте файл большего размера - скажем, размером около 1 ГБ, и посмотрите, как вы получите мапперы.


Вы также можете проверить, чтобы каждый TaskTracker правильно отчитывался в JobTracker.Если есть TaskTracker, который не подключен должным образом, он не будет получать задачи:

   $ hadoop job -list-active-trackers

Эта команда должна вывести все 3 ваших хоста.

...