InjectorJob

Crawling에 필요한 URL을 crawlDB에 적재하는 작업. 해당 Job을 구동시키기 위해서는 URL 리스트가 제공되어야 하며, 일반적으로 URL Directory를 생성하여 해당정보 파일을 넣어둔다. 다음은 Nutch에서 InjectorJob을 실행시키는 명령어,

#bin/nutch inject crawl/crawldb urls

urls는 crawling 대상 seed URL이 포함된 디렉토리이고, crawldb는 해당 url이 포함된 nutch의 자료구조에 해당된다.


GenerateJob

InjectorJob이 완료되었으며, CrawlDB에 저장된 URL을 fetch (다운로드 및 각종 operation) 해야 한다.

URL에 대해서 fetch작업 이전에 우선적으로 GenerateJob이 실행되어야 하며, 다음은 명령어 이다.

#bin/nutch generate crawl/crawldb crawl/segments

crwaldb는 URL이 생성된 db이며, segment는 crawling시에 필요한 정보를 fetch하는데 필요한 디렉토리이 이다.


FecherJob

GeneratorJob에 의해 생성된 URL을 실질적으로 fetch하는 역할로, GeneratorJob에 의해서 생성되는 input으로 fetch(consume)작업을 수행한다.

#bin/nutch fetch -all

-all 옵션은 Generator에 의해 생성된 모든 URL을 fetch하겠다는 의미이다.


ParserJob

Fetch가 완료된 이후에 URL에 대한 파싱작업을 수행하며, 명령어는 아래와 같다.

#bin/nutch parse -all


DbUpdateJob

일단 ParserJob이 완료되며, FetcherJob에 의해 제공되는 결과를 DB에 Update를 해야한다.이 작업으로 각자의 DB에 가장 최근에 Fetch된 URL의 정보를 update한다. 명령어는 다음과 같다.

#bin/nutch updatedb crawl/crawldb -all

이 작업이 완료되면 DB는 초기 페이지의 update된 정보와 신규 페이지 정보가 DB에 적재된다. 신규 페이지는 Link 정보를 포함된 새롭게 발견된 페이지를 의미한다.


Invertlinks

인덱스를 적용하기 이전에, 모든 링크에 대한 invert가 필요하다.이 작업을 통하여, 특정 페이지에 대해서 anchor text를 인덱스에 적용할 수 있다. 다음은 명령어이다.

#bin/nutch invertlinks crawl/linkdb -dir crawl/segments


Indexing with Apache Solr

크롤링이 완료되며, Nutch에 의해 완료된 URL 데이터에 대해서 Apache Solr로 인덱싱이 가능하다. 인덱싱이 완료되면 특정 URL을 쉽게 검색할 수 있다. 다음은 명령어 이다.

#bin/nutch solrindex http://127.0.0.1:8983/solr/ crawl/crawldb -linkdb crawl/linkdb crawl/segments/*


+ Recent posts