Я успешно запустил Nutch (v1.4) для сканирования в локальном режиме в моей системе Ubuntu 11.10. Однако при переключении в режим «развертывание» (при прочих равных условиях) я получаю сообщение об ошибке во время цикла выборки.
У меня Hadoop успешно работает на машине в псевдораспределенном режиме (коэффициент репликации равен 1, и у меня есть только 1 карта и 1 уменьшенная настройка задания). «jps» показывает, что все демоны Hadoop запущены и работают.
18920 Jps
14799 DataNode
15127 JobTracker
14554 NameNode
15361 TaskTracker
15044 SecondaryNameNode
Я также добавил путь HADOOP_HOME / bin к моей переменной PATH.
PATH = $ PATH: / Главная / jimb / Hadoop / бен
Затем я запустил сканирование из каталога nutch / deploy, как показано ниже:
bin / nutch crawl / data / run / ar / seedurls -dir / data / run / ar / crawls
Вот вывод, который я получаю:
12/01/25 13:55:49 INFO crawl.Crawl: crawl started in: /data/runs/ar/crawls
12/01/25 13:55:49 INFO crawl.Crawl: rootUrlDir = /data/runs/ar/seedurls
12/01/25 13:55:49 INFO crawl.Crawl: threads = 10
12/01/25 13:55:49 INFO crawl.Crawl: depth = 5
12/01/25 13:55:49 INFO crawl.Crawl: solrUrl=null
12/01/25 13:55:49 INFO crawl.Injector: Injector: starting at 2012-01-25 13:55:49
12/01/25 13:55:49 INFO crawl.Injector: Injector: crawlDb: /data/runs/ar/crawls/crawldb
12/01/25 13:55:49 INFO crawl.Injector: Injector: urlDir: /data/runs/ar/seedurls
12/01/25 13:55:49 INFO crawl.Injector: Injector: Converting injected urls to crawl db entries.
12/01/25 13:56:53 INFO mapred.FileInputFormat: Total input paths to process : 1
...
...
12/01/25 13:57:21 INFO crawl.Injector: Injector: Merging injected urls into crawl db.
...
12/01/25 13:57:48 INFO crawl.Injector: Injector: finished at 2012-01-25 13:57:48, elapsed: 00:01:59
12/01/25 13:57:48 INFO crawl.Generator: Generator: starting at 2012-01-25 13:57:48
12/01/25 13:57:48 INFO crawl.Generator: Generator: Selecting best-scoring urls due for fetch.
12/01/25 13:57:48 INFO crawl.Generator: Generator: filtering: true
12/01/25 13:57:48 INFO crawl.Generator: Generator: normalizing: true
12/01/25 13:57:48 INFO mapred.FileInputFormat: Total input paths to process : 2
...
12/01/25 13:58:15 INFO crawl.Generator: Generator: Partitioning selected urls for politeness.
12/01/25 13:58:16 INFO crawl.Generator: Generator: segment: /data/runs/ar/crawls/segments/20120125135816
...
12/01/25 13:58:42 INFO crawl.Generator: Generator: finished at 2012-01-25 13:58:42, elapsed: 00:00:54
12/01/25 13:58:42 ERROR fetcher.Fetcher: Fetcher: No agents listed in 'http.agent.name' property.
Exception in thread "main" java.lang.IllegalArgumentException: Fetcher: No agents listed in 'http.agent.name' property.
at org.apache.nutch.fetcher.Fetcher.checkConfiguration(Fetcher.java:1261)
at org.apache.nutch.fetcher.Fetcher.fetch(Fetcher.java:1166)
at org.apache.nutch.crawl.Crawl.run(Crawl.java:136)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.nutch.crawl.Crawl.main(Crawl.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Теперь файлы конфигурации для «локального» режима настроены нормально (поскольку сканирование в локальном режиме прошло успешно). Для работы в режиме развертывания, поскольку папка «deploy» не имела подкаталога «conf», я предположил, что либо:
а) файлы conf должны быть скопированы в "deploy / conf", ИЛИ
б) файлы conf должны быть размещены на HDFS.
Я подтвердил, что вариант (а) выше не помогает. Итак, я предполагаю, что файлы конфигурации Nutch должны существовать в HDFS для успешного запуска сборщика HDFS? Тем не менее, я не знаю, по какому пути в HDFS я должен поместить эти файлы conf Nutch, или, возможно, я лаю не на том дереве?
Если Nutch читает файлы конфигурации в режиме «развертывания» из файлов в «local / conf», то почему локальный обход работает нормально, а сканирование в режиме развертывания - нет?
Что мне здесь не хватает?
Заранее спасибо!