Почему Nutch выполняет выборку только на одном узле Hadoop, когда всего в кластере 5 узлов?

Я запускаю Nutch на Elastic MapReduce с 3 рабочими узлами. Я использую Nutch 1.4 с конфигурацией по умолчанию, с которой он поставляется (после добавления пользовательского агента).

Однако, несмотря на то, что я просматриваю список из 30 000 доменов, этап выборки выполняется только с одного рабочего узла, хотя этап синтаксического анализа выполняется на всех трех.

Как заставить его выполнять шаг выборки со всех трех узлов?

* РЕДАКТИРОВАТЬ * Проблема заключалась в том, что мне нужно было установить для свойства mapred.map.tasks размер моего кластера Hadoop. Вы можете найти это задокументированное здесь


person cberner    schedule 22.04.2012    source источник


Ответы (1)


По умолчанию URL-адреса разделов nutch основаны на их хостах. Соответствующее свойство в nutch-default.xml:

<property>
  <name>partition.url.mode</name>
  <value>byHost</value>
  <description>Determines how to partition URLs. Default value is 'byHost', 
  also takes 'byDomain' or 'byIP'. 
  </description>
</property>

Пожалуйста, проверьте значение в настройках.

Я думаю, что вашу проблему можно диагностировать, получив ответы на эти вопросы:

  1. Сколько сопоставителей было создано для задания выборки? возможно, было создано несколько картографов, и все они были завершены раньше, кроме одного.
  2. Какое значение topN использовалось в команде генерации? Если это мало, то, несмотря на наличие 30 000 страниц, на фазу выборки будет отправлено гораздо меньше.
  3. Использовали ли вы опцию numFetchers в команде генерации? Это контролирует количество карт, созданных для задания выборки.
  4. Сколько сокращений было создано для задания generate-partition? Если это значение равно 1, то на этапе выборки будет создана только одна карта. Вывод генерации раздела передается на фазу выборки. Количество файлов частей, созданных генерацией (т. е. редукторов для генерирования), равно количеству карт, созданных для задания выборки.
  5. Каковы настройки для mapred.map.tasks в вашем Hadoop? каково соответствующее значение для сокращения?
person Tejas Patil    schedule 22.04.2012
comment
1) Похоже, что для шага выборки создается только 1 маппер 2) Я не указал topN 3) Не похоже, что опция numFetchers действительна для класса Crawl в архиве nutch-1.4.job 4) Около 200 5) Я не устанавливал значение, так что это просто значение по умолчанию, которое есть в EMR. - person cberner; 22.04.2012
comment
Что, если, как вы упомянули в шаге № 4, в задании создания раздела есть только один редуктор? Я также работаю в ситуации, когда выборка выполняется только в одной задаче карты, и этому предшествует один редьюсер в задании generate-partition. Как я могу заставить Nutch выполнять выборку в нескольких задачах карты, есть ли настройка, позволяющая принудительно использовать более одного редуктора в задании generate-partition? - person user1965449; 28.08.2014