Извлечение выбранных веб-страниц из Nutch в дружественном формате карты

После обхода Nutch в распределенном режиме (развертывания) следующим образом:

bin/nutch crawl s3n://..... -depth 10 -topN 50000 -dir /crawl -threads 20 

Мне нужно извлечь каждый URL-адрес вместе с его содержимым в удобном для карты формате. При использовании приведенной ниже команды readseg содержимое извлекается, но выходной формат не поддается уменьшению карты.

bin/nutch readseg -dump /crawl/segments/*  /output  -nogenerate -noparse -noparsedata -noparsetext

В идеале вывод должен быть в таком формате:

http://abc.com/1     content of http://abc.com/1
http://abc.com/2     content of http://abc.com/2

Любые предложения о том, как этого добиться?


person Sid    schedule 11.04.2012    source источник


Ответы (2)


Команда bin/nutch readseg производит вывод в удобочитаемом формате, а не в формате сокращения карты. Данные хранятся в сегментах в формате map-reduce. Я не думаю, что вы можете напрямую вытащить эту информацию из сегментов в формате map-reduce.

Несколько вариантов для вашей заботы:

  1. Сегменты сами по себе являются файлами формата map-reduce. Можете ли вы повторно использовать их?
  2. Вывод команды readseg можно преобразовать в форму уменьшения карты, написав небольшой код уменьшения карты.
person Tejas Patil    schedule 12.04.2012
comment
Это ответ @TejasP. В итоге я изменил исходный код Nutch. - person Sid; 14.04.2012

Ответ заключается в настройке исходного кода nutch. Это оказалось совсем просто. Перейдите к файлу SegmentReader.java в apache-nutch-1.4-bin/src/java/org/apache/nutch/segment

Внутри класса SegmentReader есть метод reduce, который отвечает за генерацию удобочитаемого вывода, который генерирует команда bin/nutch readseg. Измените переменную StringBuffer dump по своему усмотрению — она содержит весь вывод для данного URL-адреса, представленного переменной key.

Убедитесь, что вы запустили ant для создания нового двоичного файла, а дальнейшие вызовы bin/nutch readseg будут генерировать вывод в вашем пользовательском формате.

Эти ссылки были чрезвычайно полезны при навигации по коду:
[1] http://nutch.apache.org/apidocs-1.4/overview-summary.html
[2] http://nutch.apache.org/apidocs-1.3/index-all.html

person Sid    schedule 12.04.2012