Nutch 초간단 빌드와 실행

foreWiki

 

목차

[숨기기]

개요

Apache-Nutch의 개발환경 구축은 다음문서에 나와 있기는 하다. 하지만 분명히 제목은 eclipse에서 실행하기인데 그대로 따라하면 실행환경이 구축되지 않는다. 정말이다. 몇차례의 삽질끝에 어떻게 개발환경을 만들어야 하는지 알게되었다. 물론 이 문서대로 하는 것만이 정답은 아니다. 어떻게 하던 빌드하고 브레이크 포인트 잡고 할수 있게 만들면 되는거지. 그래도 삽질의 결과를 잊지 않기 위해 여기에 적어두려고 한다.

이 문서는 다음 문서를 참조해서 작성되었다.

준비하기

초간단 빌드

다운받은 Nutch를 적당한 곳에 풀어 놓는다.(그 위치를 $NUTCH_HOME 이라 하자) 이제 $NUTCH_HOME으로 이동한다.

$ cd $NUTCH_HOME

빌드명령을 실행하기 전에 수집을 위한 설정이 필요하다. conf 디렉토리로 이동한다.

$ cd conf

많은 설정파일중에 변경이 필요한 파일은 nutch-site.xml, regex-urlfilter.txt 두개이다. nutch-site.xml 에 다음과 넣어준다. 크롤시 사용된 agent name을 지정해주는 것이다.

<configuration>
   <property>
       <name>http.agent.name</name>
       <value>My Nutch Spider</value>
   </property>
</configuration>

regex-urlfilter.txt 를 다음과 같이 바꿔준다.

# accept anything else
+.

위와 같은 부분을 아래와 같이 교체해서 수집될 URL 형태를 제한하는 것이다.

# accept anything else
+^http://([a-z0-9]*\.)*nutch.apache.org/

regex-urlfilter.txt의 내용을 잘 살펴보면 -로 시작하는 것은 skip할 패턴, +로 시작하는 것인 accept할 패턴이다. 여기서는 nutch.apache.org인 URL만 수집하겠다는 의미이다. 수집을 위한 설정은 다음에서 참고한 것이다. http://wiki.apache.org/nutch/NutchTutorial

이제 설정은 다되었고 다시 $NUTCH_HOME으로 이동해서 ant를 실행한다.

$ cd ..
$ ant

build.xml에 기술되어 있는 "runtime" 타겟이 기본 타겟으로 실행된다. 이때 nutch 프로젝트가 참조하는 외부라이브러리는 apache-ivy 를 이용해서 자동으로 다운받는다. apache-ivy는 라이브러리 의존성 관리를 위한 툴이다. 이것을 위한 의존성은 $NUTCH_HOME/ivy/ivy.xml에 기술되어 있다.

ant를 이용해서 빌드를 완료하게되면 $NUTCH_HOME/runtime 이라는 디렉토리가 생성된다. 이 디렉토리에 Nutch 실행에 필요한 jar, 설정파일, plugin이 복사되어 있을것이다. 여기까지 오면 초간단 빌드는 완료된다.

참고로 수집만이 목적이라면 빌드과정 없이 바이너리를 받아서 실행해도 된다. 그것에 대한 설명은 다음 문서를 참조하시라. http://wiki.apache.org/nutch/NutchTutorial

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

초간단 수집

빌드 단계에서 일부 설정파일은 미리 만줘졌으므로 수집의 시작점이 되는 seed url만 지정하면 된다. urls 라는 디렉토리를 생성하고 seed.txt 파일을 만들어서 http://nutch.apache.org 라고 추가하자. urls 디렉토리는 $NUTCH_HOME/runtime/local 아래에 만들어준다.

$ cd $NUTCH_HOME/runtime/local
$ mkdir urls
$ echo http://nutch.apache.org > urls/seed.txt

이제 수집을 시작할수 있다. 실행을 위한 스크립트는 $NUTCH_HOME/bin 디렉토리 아래있는데 다음과 같은 명령어를 통해서 수집을 시작하라.

$ bin/nutch crawl urls -dir crawl -depth 3 -topN 5

위 명령을 실행하면 뭔가 실행되는 듯한 로그가 쭉 올라가고 결국 수집이 완료되면 다음과 같은 아름다운 메시지를 볼수 있다.

2011-10-11 16:25:44,550 INFO  crawl.Crawl - crawl finished: crawl

그리고 $NUTCH_HOME/runtime/local/crawl 이라는 디렉토리가 생성된 것을 확인할 수 있다. crawl 디렉토리 하위에 방문링크, 다운로드된 html등이 들어가 있는데 text가 아니기 때문에 바로 내용을 확인해 볼수는 없다. 아~ 궁금하다. 어떤 내용이 수집된 걸까? 이걸 확인해보는 방법은 Nutch에서 제공하는 덤프명령을 통해 볼수도 있지만 색인과정을 거처서 검색을 통해서 확인해 보자. 그럼 다음 장을 참조하시라.

색인을 위한 solr 구축

apache-solrapache-lucene을 이용해서 문서를 색인하고 검색서버를 쉽게 구축할 수 있도록 하는 검색 플랫폼이다.

여기에서 최신 solr(apache-solr-3.4.0.tgz)를 다운 받고 적당한 위치에 풀어놓는다. 그 위치를 $SOLR_HOME 이라 하자. solr는 바로 실행가능한 예제 바이너리를 제공한다. $SOLR_HOME/example 로 이동한다. 그리고 다음과 같이 서버를 실행한다.

$ cd $SOLR_HOME/solr/example
$ java -jar start.jar

solr 실행이 정상적으로 되었는지 다음 페이지에 접속해보면 확인할 수 있다.

http://localhost:8983/solr/admin/ 에서 Search 버튼을 클릭하면 색인된 문서를 볼수 있는데 아직은 아무것도 색인된 것이 없다.

h5. 수집문서를 색인하기 Nutch는 색인을 위한 solr 설정 파일을 가지고 있다. 이것을 solr의 설정 디렉토리에 복사해주고 난후 solr를 재시작한다.

$ cd $NUTCH_HOME
$ cp $NUTCH_HOME/runtime/local/conf/schema.xml $SOLR_HOME/example/solr/conf/
$ cd $SOLR_HOME/solr/example
$ java -jar start.jar

이제 수집후에 solr에 수집된 문서를 전달해서 색인되도록 -solr 옵션을 주고 Nutch를 실행한다.

$ $NUTCH_HOME/bin/nutch crawl urls -solr http://localhost:8983/solr/ -depth 3 -topN 

수집이 완료되면 http://localhost:8983/solr/admin/ 에서 Search 버튼을 클릭하면 수집된 문서를 확인가능하다.

 

 

[출처] http://foreblue.net/wiki/index.php/Nutch_%EC%B4%88%EA%B0%84%EB%8B%A8_%EB%B9%8C%EB%93%9C%EC%99%80_%EC%8B%A4%ED%96%89

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
27 [java][maven] jar 파일 의존성 한번에 다운로드 maven 사용 졸리운_곰 2023.08.24 13
26 Prometheus + Grafana로 Java 애플리케이션 모니터링하기 file 졸리운_곰 2020.12.17 79
25 Blockchain Implementation With Java Code file 졸리운_곰 2019.06.16 108
24 Java 코드로 이해하는 블록체인(Blockchain) 졸리운_곰 2019.06.16 127
23 순수 Java Application 코드로 Restful api 호출 졸리운_곰 2018.10.10 245
22 WebDAV 구현을 위한 환경 설정 file 졸리운_곰 2017.09.24 74
21 [Java] Apache Commons HttpClient로 SSL 통신하기 졸리운_곰 2017.03.27 545
20 JSoup를 이용한 HTML 파싱 졸리운_곰 2017.03.04 100
19 jsoup을 활용해서 Java에서 HTML 파싱하는 방법 정리 file 졸리운_곰 2017.03.04 157
18 NSA의 Dataflow 엔진 Apache NiFi 소개와 설치 file 졸리운_곰 2017.01.23 463
17 wordpress-java-integration 자바와 워드프레스 통합 졸리운_곰 2016.12.30 166
16 Create New Posts in Wordpress using Java and XMLRpc 졸리운_곰 2016.11.14 69
15 자바로 POST 방식으로 통신하기, java httppost 클래스를 활용한 예제 졸리운_곰 2016.11.14 444
14 [Java]아파치 HttpClient사용하기 file 졸리운_곰 2016.11.14 104
13 Building a Search Engine With Nutch Solr And Hadoop file 졸리운_곰 2016.04.21 219
12 Nutch and Hadoop Tutorial file 졸리운_곰 2016.04.21 209
11 Latest step by Step Installation guide for dummies: Nutch 0. file 졸리운_곰 2016.04.21 131
» Nutch 초간단 빌드와 실행 졸리운_곰 2016.04.21 457
9 Nutch로 알아보는 Crawling 구조 - Joinc 졸리운_곰 2016.04.21 352
8 A tiny bittorrent library Java: 자바로 만든 작은 bittorrent 라이브러리 file 졸리운_곰 2016.04.20 242
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED