Запустите Nutch на существующем кластере Hadoop - PullRequest
0 голосов
/ 14 марта 2011

У нас есть кластер Hadoop (Hadoop 0.20), и я хочу использовать Nutch 1.2 для импорта некоторых файлов через HTTP в HDFS, но я не смог запустить Nutch в кластере.

Я обновил скрипт $ HADOOP_HOME / bin / hadoop , чтобы добавить баночки Nutch в classpath (фактически я скопировал настройку classpath из $ NUTCH_HOME / bin / nutch сценарий без части, которая добавляет $ NUTCH_HOME / lib / * в путь к классам), а затем я попытался выполнить следующую команду для введения URL-адресов:

hadoop jar nutch*.jar org.apache.nutch.crawl.Injector -conf conf/nutch-site.xml crawl_path urls_path

но я получил java.lang.RuntimeException: x point org.apache.nutch.net.URLNormalizer not found.

Файл конфигурации $ NUTCH_HOME / conf / nutch-site.xml устанавливает свойство

<property>
    <name>mapreduce.job.jar.unpack.pattern</name>
    <value>(?:classes/|lib/|plugins/).*</value>
</property>

как обходной путь для принудительной распаковки каталога / plugin, как предложено в: Когда nutch запускается на hadoop> 0.20.2 (или cdh), он не найдет плагины, потому что MapReduce не будет распаковывать каталог plugin / из задания задания. пакет (из-за MAPREDUCE-967) , но мне кажется, что это не сработало.

Кто-нибудь сталкивался с этой проблемой? У вас есть пошаговое руководство по запуску Nutch на существующем Hadoop?

Заранее спасибо,
Михаэла

Ответы [ 2 ]

4 голосов
/ 17 марта 2011

Наконец, я запустил задания Nutch MapReduce (Injector, Generator и Fetcher), используя скрипт bin / hadoop без изменений по отношению к Nutch.Проблема связана с классом org.apache.hadoop.util.RunJar (классом, который запускает jar задания hadoop при вызове hadoop jar <jobfile> jobClass), который добавляет к classpath из файла jar задания только подкаталоги classes/ и lib/, а задания Nutch имеют plugins подпапка также содержит плагины, используемые во время выполнения.Я попытался переопределить свойство mapreduce.job.jar.unpack.pattern до значения (?:classes/|lib/|plugins/).*, чтобы класс RunJar добавил также плагины к пути к классам, но это не сработало.
После просмотра кода Nutch я увидел, что он использует свойство plugin.folders, которое определяет, где можно найти плагины.Итак, что я сделал, и это сработало, скопировав подпапку плагинов из jar задания на общий диск и установив свойство plugin.folders для этого пути каждый раз, когда я запускаю задание Nutch.Например:

 hadoop jar <path to nutch job file> org.apache.nutch.fetcher.Fetcher -conf ../conf/nutch-default.xml -Dplugin.folders=<path to plugins folder> <segment path>

В файле conf/nutch-default.xml я установил некоторые свойства, такие как имя агента, хост и порт прокси, время ожидания, ограничение содержимого и т. Д.

Iтакже попытался создать Jar Job Nar с подпапкой plugins в подпапке lib, а затем установить для свойства plugin.folders значение lib/plugins, но это не сработало ....

0 голосов
/ 17 марта 2011

Я запустил Nutch на существующем кластере hadoop, изменив скрипт bin / nutch, а затем скопировал файлы конфигурации nutch в папки hadoop, изменив параметры TS и NS. Вы пробовали это так?

...