2016-06-09 2 views
2

Это похоже на solr5.3.15-nutch here, но с несколькими дополнительными морщинами. Во-первых, в качестве фона я попробовал solr 4.9.1 и без проблем. Затем переместился в solr 6.0.1. Интеграция отлично работала как автономная, и получила код backend, работающий для анализа json и т. Д. Однако в конечном итоге нам нужна безопасность и мы не хотим использовать Kerberos. Согласно документации безопасности Solr, базовый auth и основанный на правилах auth (это то, что мы хотим) работает только в облачном режиме (как в стороне, если у кого есть предложения по обеспечению безопасности не Kerberos, работающей в автономном режиме, это будет работать как Что ж). Итак, просмотрел документ по адресу Solr-Cloud-Ref, используя интерактивный запуск и взяв все значения по умолчанию, за исключением имени коллекции, которую я сделал как «nndcweb» вместо «getstarted». Конфигурация, которую я принял, была data_driven_schema_configs. Чтобы интегрировать nutch, было много перестановок попыток, которые я сделал. Я дам только последние 2, которые, казалось, были ближе всего на основе того, что я смог найти до сих пор. Из предыдущей справки переполнения стека последнее, что я пробовал, было (обратите внимание, что все URL-адреса имеют http: //, но система публикации для Stackoverflow жаловалась, поэтому я вынул их для этого сообщения):Интеграция nutch 1.11 с solr 6.0.1 cloud

bin/nutch index crawl/crawldb -linkdb crawl/linkdb -D solr.server.url = localhost: 8939/solr/nndcweb/-Dsolr.server.type = cloud -D solr.zookeeper.url = localhost: 9983/-dir ползать/сегменты/* -normalize

Я в конечном итоге с той же проблемой было отмечено в предыдущем потоке упомянутых, а именно:

Исключение в теме "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Недопустимый символ в имени схемы по индексу 15: solr.server.url = localhost: 8939/solr/nndcweb at org.apache.hadoop.fs .Path.initialize (Path.java:206) at org.apache.hadoop.fs.Path. (Path.java:172) на org.apache.nutch.indexer.IndexingJob.run (IndexingJob.java:217) at org.apache.hadoop.util.ToolRunner.run (ToolRunner.java:70) at org.apache.nutch.indexer.IndexingJob.main (IndexingJob.java:231) Вызвано: java.net.URISyntaxException: Недопустимый символ в имени схемы в индексе 15: solr.server.url = localhost: 8939/solr/nndcweb at java.net.URI $ Parser.fail (URI.java:2848) at java.net.URI $ Parser. checkChars (URI.java:3021) на java.net.URI $ Parser.parse (URI.java:3048) на java.net.URI. (URI.java:746) at org.apache.hadoop.fs.Path.initialize (Path.java : 203)

Я также попытался:

бен/Nutch solrindex локальный: 8983/Solr/nndcweb ползать/crawldb -linkdb ползать/linkdb -Dsolr.server.type = облако -D Solr. zookeeper.url = localhost: 9983/-dir crawl/segment/* -normalize

и получить то же самое. Выполнение справки по solrindex указывает на использование -params с «&», разделяющим параметры (в отличие от использования -D). Тем не менее, это только говорит о том, что моя Linux-система, конечно, пытается запустить некоторые странные вещи в фоновом режиме.

Есть ли у кого-нибудь предложения о том, что попробовать дальше? Благодаря!

Обновление Я обновил приведенные выше команды, чтобы отразить поправку к глупой ошибке, которую я совершил.Обратите внимание, что все ссылки на url на практике имеют префикс http: //, но я должен был их вынуть, чтобы отправлять сообщения. Несмотря на исправление, я все равно получаю одно и то же исключение (образец которого я использовал для замены оригинала выше, опять же с вырезанием http: //, который делает вещи запутанными ... извините за это ...).

Еще одно обновление Итак .. это интересно. Используя параметр solrindex, я просто вынул порт из urook urook .. just localhost (с префиксом http: //). 15 символов. URISyntaxException говорит, что проблема заключается в индексе 18 (из org.apache.hadoop.fs.Path.initialize (Path.java:206)). Это происходит в соответствии с «=» в «solr.zookeeper.url =». Итак, похоже, что hasoop.fs.Path.intialize() принимает всю строку в качестве URL-адреса. Так, возможно, я не правильно это настрою? Или это ошибка в хаупе? Это было бы трудно поверить.

Почти Там Обновление Alright..given результатов последней попытки, я решил поставить solr.type облака и zookeeper.url в Nutch-site.xml конфигурационного файла. Затем сделал:

бен/Nutch solrindex http://localhost:8983/solr/nndcweb ползать/crawldb -linkdb ползать/linkdb -dir ползать/сегменты -normalize

(great..no жалобы на URL теперь от StackOverflow). Никакое исключение из ури больше. Теперь ошибка, я получаю:

(резка словоблудие на вершине)

Indexing 250 documents 
Indexer: java.io.IOException: Job failed! 
at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:836) 
at org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:145) 
at org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:222) 
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
at org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:231) 

Копаем глубже в Nutch журналы, я вижу следующее:

Нет Коллекция Param указана по запросу и сбор по умолчанию не установлен.

По-видимому, об этом упоминалось в списке Nutch Mailing в связи с Nutch 1.11 и solr 5 (облачный режим). Там было упомянуто, что он не будет работать, но патч будет загружен (это было в январе 2016 года). Копаясь на площадке разработки орехов, я не сталкивался ни с чем по этой проблеме ... что-то немного похожее на nutch 1.13, который, по-видимому, официально не выпущен. Тем не менее копаться, но если кто-нибудь на самом деле имеет эту работу каким-то образом, я хотел бы услышать, как вы это сделали ..

Редактировать июля 12-2016

Итак, после утечки через несколько недель на другой не связаны проект, я вернусь к этому. Прежде чем увидеть ответ С. Доу ниже, я решил вместо этого попробовать ElasticSearch. Это совершенно новый проект, и мы пока ничего не привязаны. Все идет нормально. Нутч хорошо работает с ним, хотя для использования распределенных двоичных файлов мне приходилось поддерживать версию Elasticsearch до 1.4.1. Еще не пробовал аспект безопасности. Из любопытства я попробую предложение С. Доу с solr в конце концов и опубликует, как это будет происходить позже ...

ответ

1

Вы не указываете протокол для подключения к Solr: вам нужно указать часть solr.server.url и вы использовали неправильный синтаксис для указания порта для подключения, правый URL должен быть: http://localhost:8983/solr/nndcweb/.

+0

Привет, Хорхе, @ jorge-luis, Спасибо ... Ошибка. С моей стороны для спецификация порта. Также изначально часть http: // была там, но Stackoverflow не принимал сообщение, поскольку он думал, что у меня слишком много ссылок. Итак, я убрал его здесь. Итак, для индекса и solrindex я гарантировал, что он был http: // localhost: XXXX для всех случаев. Очень странно все еще получаю ту же проблему URISyntaxException (я действительно думал, что ваше исправление будет делать трюк), –

1

О проблеме с URL-адресом при использовании индекса solr: у меня была такая же проблема, и я знаю, что это звучит глупо, но по какой-то причине я не могу ее получить, вы можете исправить это, используя Encode URL (замените «:» на . "% 3A", "/" с "% 2F" и ...) вместо (по крайней мере, для меня это зафиксировано, что проблема) в вашем случае:.

бен/Nutch solrindex -D Solr. server.url = HTTP% 3A% 2F% 2Flocalhost% 3A8983% 2Fsolr% 2Fnndcweb ползать/crawldb -linkdb ползать/linkdb -dir ползать/сегменты -normalize

Я надеюсь, что это помогает. BTW, теперь у меня такая же проблема, как и у вас (Indexer: java.io.IOException: Job failed!)

Смежные вопросы