Как выполнить отказоустойчивое добавочное сканирование с использованием Apache Nutch? - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь создать крошечный инкрементальный сканер для всей сети, используя Apache Nutch и Solr. На данный момент я предполагаю, что я запускаю его на одной машине и где огромное количество URL, поэтому я не могу сканировать их все. Это должно быть отказоустойчиво, и его должно быть легко восстановить, если что-то не получается.

Для сканирования я делаю следующую инициализацию:

bin/nutch inject crawl/crawldb urls
bin/nutch generate crawl/crawldb crawl/segments

Затем в бесконечном l oop I сделаю:

bin/nutch generate crawl/crawldb crawl/segments -topN 1000
s1=`ls -d crawl/segments/2* | tail -1`
echo $s1
bin/nutch fetch $s1
bin/nutch parse $s1
bin/nutch updatedb crawl/crawldb $s1


bin/nutch invertlinks crawl/linkdb -dir crawl/segments
bin/nutch index crawl/crawldb/ -linkdb crawl/linkdb/ $s1 -filter -normalize -deleteGone
bin/nutch dedup crawl/crawldb/
bin/nutch clean crawl/crawldb/ http://localhost:8983/solr

По этому поводу у меня есть пара вопросов:

  1. Это вообще оптимальное решение?

  2. В случае сбоя Solr и необходимости начать сканирование с самого начала, могу ли я просто сделать bin/nutch index crawl/crawldb/ -linkdb crawl/linkdb/ $s1 -filter -normalize -deleteGone для каждого существующего сегмента?

  3. Как я могу отсканировать сбойный сегмент ?

  4. Должны ли быть скопированы все данные внутри папки сегмента. Или что-то может быть удалено для экономии места?

  5. Будет ли работать этот дополнительный обход при настройке сканирования? (поэтому настройка db.fetch.schedule.class / db.fetch.interval.default / db.fetch.schedule.adaptive. *)

...