Crawler란 웹에서 지속적으로 데이터를 수집해오는 녀석을 말한다.

어떤 Root Url을 기초로 문서를 파싱 그 안의 Url을 수집해서 계속적으로 문서를 파싱하며, 그 안에서 유용한 내용은 따로 DB에 저장해두도록 한다.

본 프로젝트에서는 수많은 자료가 필요하기 때문에 하둡의 분산 저장 시스템인 hdfs에 저장하도록 하였다. 

Crawler의 기본적인 구조는 총 세가지 단계로 나누어 진다. (Master, Slave, Monitor)

Master는 기본적으로 Url을 지속적으로 수집해주는 녀석, Slave는 데이터를 파싱하고, 그 안에서 Url이 있으면, 어떠한 공유 저장공간으로 보내게 된다.

본 프로젝트에서는 네이버의 뉴스 Url을 가져오도록 하기 때문에 위의 과정까지는 필요없지만, 마스터가 Url을 지속으로 수집해 메모리상에 구현된 큐에 넣어주고, 슬레이브는 이 큐에서 데이터를 빼내 수집하도록 하는 구조이다.

 

아래는 발표 때 썼던 PT자료.(아래 그림을 본다면 바로 짜볼 수 있지 않을까? ㅋ)

 

본 프로젝트 백업을 위해 소스는 첨부. ㅋ

CrawlerEnd.zip

 

 

 

반응형
Posted by N'