Implementation of a Parallel Web Crawler for the Odysseus Large-Scale Search Engine

오디세우스 대용량 검색 엔진을 위한 병렬 웹 크롤러의 구현

  • 신은정 (한국과학기술원 전산학과) ;
  • 김이른 (한국과학기술원 전산학과) ;
  • 허준석 (한국과학기술원 전산학과) ;
  • 황규영 (한국과학기술원 전산학과)
  • Published : 2008.08.15

Abstract

As the size of the web is growing explosively, search engines are becoming increasingly important as the primary means to retrieve information from the Internet. A search engine periodically downloads web pages and stores them in the database to provide readers with up-to-date search results. The web crawler is a program that downloads and stores web pages for this purpose. A large-scale search engines uses a parallel web crawler to retrieve the collection of web pages maximizing the download rate. However, the service architecture or experimental analysis of parallel web crawlers has not been fully discussed in the literature. In this paper, we propose an architecture of the parallel web crawler and discuss implementation issues in detail. The proposed parallel web crawler is based on the coordinator/agent model using multiple machines to download web pages in parallel. The coordinator/agent model consists of multiple agent machines to collect web pages and a single coordinator machine to manage them. The parallel web crawler consists of three components: a crawling module for collecting web pages, a converting module for transforming the web pages into a database-friendly format, a ranking module for rating web pages based on their relative importance. We explain each component of the parallel web crawler and implementation methods in detail. Finally, we conduct extensive experiments to analyze the effectiveness of the parallel web crawler. The experimental results clarify the merit of our architecture in that the proposed parallel web crawler is scalable to the number of web pages to crawl and the number of machines used.

웹의 크기가 폭발적으로 증가함에 따라 인터넷에서 정보를 얻는 수단으로서 검색 엔진의 중요성이 부각되고 있다. 검색 엔진은 사용자에게 최신의 정보를 검색 결과로서 제공하기 위해 웹 페이지를 주기적으로 수집하고 이를 데이타베이스에 저장한다. 웹 크롤러는 이러한 목적으로 웹 페이지를 수집하는 프로그램이다. 대부분의 검색 엔진은 제한된 시간 내에 많은 수의 웹 페이지를 수집하기 위해 다수의 머신을 사용하는 병렬 웹 크롤러를 이용한다. 그러나, 병렬 웹 크롤러의 아키텍처와 세부 구현 방법이 잘 알려져 있지 않기 때문에 실제로 병렬 웹 크롤러를 구현하는 데에 어려움이 많다. 본 논문에서는 병렬 웹 크롤러(parallel web crawler)의 아키텍처와 세부 구현 방법을 제시한다. 병렬 웹 크롤러는 다수의 머신에서 웹 페이지를 병렬적으로 수집하기 위해 조정자(coordinator) 대리자(agent) 구조의 2-티어(tier) 모델을 사용한다. 조정자/대리자 모델은 각 머신에서 웹 페이지를 수집하기 위한 다수의 대리자들과 이 대리자들을 관리하기 위한 하나의 조정자로 구성된다. 병렬 웹 크롤러는 웹 페이지를 수집하기 위한 크롤링(crawling) 모듈, 수집한 웹 페이지를 데이타베이스 로딩 포맷으로 변환하기 위한 컨버팅(converting) 모듈, 수집된 웹 페이지의 중요도를 계산하기 위한 랭킹(ranking) 모듈로 구성된다. 본 논문에서는 병렬 웹 크롤러의 각 모듈들을 설명하고, 세부 구현 방법을 설명한다. 마지막으로, 실험을 통해 병렬 웹 크롤러의 성능을 평가하였다. 실험 결과, 제안된 병렬, 웹 크롤러가 수집해야할 웹 페이지 개수와 머신 개수에 따라 확장 가능함을 보였다.

Keywords

References

  1. Dong, S., Lu, X., and Zhang, L., "A Parallel Crawling Schema Using Dynamic Partition," In Proc. Int'l Conf. on Computational Science, pp. 287-294, 2004
  2. Castillo, C., "Effective Web Crawling," ACM SIGIR Forum 55, Vol.39, No.1, pp. 55-56, June 2005 https://doi.org/10.1145/1067268.1067287
  3. Google, http://www.google.com
  4. Naver, http://www.naver.com
  5. Yahoo, http://www.yahoo.com
  6. Cho, J., Garcia-Molina, H., "Parallel Crawlers," Technical Report, Stanford University, 2001
  7. Cho, J., Garcia-Molina, H., Haveliwala, T., Lam, W., Paepcke, A., Raghavan, S., and Wesley, G., Stanford WebBase Components and Applications, Technical Report, Stanford University, 2004
  8. 김계정, 김민수, 김이른, 황규영, "커뮤니티 제한 검색을 위한 웹 크롤링 및 PageRank 계산," 한국정보과학회 한국컴퓨터종합학술대회 논문집, Vol.32, No.1(B), pp. 1-3, 2005년 7월
  9. Chau, H., Pandit, S., Wang, S., and Faloutsos, C., "Parallel Crawling for Online Social Networks," In Proc. 16th Int'l Conf. on World Wide Web, pp. 1283-1284, Alberta, Canada, May 2007
  10. Internet Archive, http://www.archive.org
  11. Heydon, A. and Najork, M., "Mercator: A Scalable, Extensible Web Crawler," In Proc. 2nd Int'l Conf. on World Wide Web, pp.219-229, Dec. 1999
  12. 신은정, "대용량 검색 엔진을 위한 병렬 웹 크롤러의 설계 및 구현," 석사학위논문, KAIST 전산학과, 2007
  13. Page, L., Brin, S., Motwani, R., and Winograd, T., The PageRank Citation Ranking: Bringing Order to the Web, Technical Report, Stanford University, 1998
  14. Kamvar, S., Haveliwala, T., Manning, C., and Golub, G., Exploiting the Block Structure of the Web for Computing PageRank, Technical Report, Stanford University, 2003
  15. Jie Xu, Qinglan Li, Huiming Qu, and Alexandros Labrinidis, "Towards a Content-Provider-Friendly Web Page Crawler," In Proc. 10th Int'l ACM Workshop on the Web and Databases, 2007
  16. Koster, M., "A Standard for Robot Exclusion," http://www.robotstxt.org/wc/-norobots.html
  17. Secure Hash Standard, http://www.itl.nist.gov/ fipspubs/fip180-1.htm
  18. 황규영, 이민재, 이재길, 김민수, 한욱신, "오디세우스/IR: 정보 검색 기능과 밀결합된 고성능 객체 관계형 DBMS", 한국정보과학회 논문지: 컴퓨팅의 실제, Vol. 11, No.3, pp. 209-215, 2005년 6월