Architecture of A Scalable Dynamic Parallel WebCrawler with High Speed Downloadable Capability for a Web Search Engine

Similar documents
A Hierarchical Web Page Crawler for Crawling the Internet Faster

Multi-Agent System for Search Engine based Web Server: A Conceptual Framework

CRAWLING THE WEB: DISCOVERY AND MAINTENANCE OF LARGE-SCALE WEB DATA

Parallel Crawlers. Junghoo Cho University of California, Los Angeles. Hector Garcia-Molina Stanford University.

Parallel Crawlers. 1 Introduction. Junghoo Cho, Hector Garcia-Molina Stanford University {cho,

Searching the Web What is this Page Known for? Luis De Alba

Self Adjusting Refresh Time Based Architecture for Incremental Web Crawler

Recent Researches on Web Page Ranking

Estimating Page Importance based on Page Accessing Frequency

How to Crawl the Web. Hector Garcia-Molina Stanford University. Joint work with Junghoo Cho

Information Retrieval. Lecture 10 - Web crawling

Title: Artificial Intelligence: an illustration of one approach.

WEBTracker: A Web Crawler for Maximizing Bandwidth Utilization

Introducing Dynamic Ranking on Web-Pages Based on Multiple Ontology Supported Domains

Information Retrieval Issues on the World Wide Web

Anatomy of a search engine. Design criteria of a search engine Architecture Data structures

Web-Page Indexing Based on the Prioritized Ontology Terms

CHAPTER 4 PROPOSED ARCHITECTURE FOR INCREMENTAL PARALLEL WEBCRAWLER

Web-page Indexing based on the Prioritize Ontology Terms

1. Introduction. 2. Salient features of the design. * The manuscript is still under progress 1

Effective Page Refresh Policies for Web Crawlers

A Framework for Incremental Hidden Web Crawler

Review: Searching the Web [Arasu 2001]

Enhancement to PeerCrawl: A Decentralized P2P Architecture for Web Crawling

[Banjare*, 4.(6): June, 2015] ISSN: (I2OR), Publication Impact Factor: (ISRA), Journal Impact Factor: 2.114

INTRODUCTION (INTRODUCTION TO MMAS)

Address: Computer Science Department, Stanford University, Stanford, CA

Distributed Web Crawling over DHTs. Boon Thau Loo, Owen Cooper, Sailesh Krishnamurthy CS294-4

Highly Efficient Architecture for Scalable Focused Crawling Using Incremental Parallel Web Crawler

Automatic Web Image Categorization by Image Content:A case study with Web Document Images

Effective Performance of Information Retrieval by using Domain Based Crawler

An Application of Personalized PageRank Vectors: Personalized Search Engine

A SURVEY ON WEB FOCUSED INFORMATION EXTRACTION ALGORITHMS

A New Approach to Design Graph Based Search Engine for Multiple Domains Using Different Ontologies

A STUDY ON THE EVOLUTION OF THE WEB

Efficient Hybrid Multicast Routing Protocol for Ad-Hoc Wireless Networks

SE4SC: A Specific Search Engine for Software Components *

A Novel Interface to a Web Crawler using VB.NET Technology

An Approach to Manage and Search for Software Components *

DataRover: A Taxonomy Based Crawler for Automated Data Extraction from Data-Intensive Websites

A Heuristic Based AGE Algorithm For Search Engine

ISSN: (Online) Volume 3, Issue 6, June 2015 International Journal of Advance Research in Computer Science and Management Studies

arxiv:cs/ v1 [cs.ir] 26 Apr 2002

Frontiers in Web Data Management

A FAST COMMUNITY BASED ALGORITHM FOR GENERATING WEB CRAWLER SEEDS SET

Proximity Prestige using Incremental Iteration in Page Rank Algorithm

COMPARATIVE ANALYSIS OF POWER METHOD AND GAUSS-SEIDEL METHOD IN PAGERANK COMPUTATION

Term-Frequency Inverse-Document Frequency Definition Semantic (TIDS) Based Focused Web Crawler

International Journal of Advanced Research in Computer Science and Software Engineering

Search Engines and Web Dynamics

Extendible Chained Bucket Hashing for Main Memory Databases. Abstract

Web Crawling. Jitali Patel 1, Hardik Jethva 2 Dept. of Computer Science and Engineering, Nirma University, Ahmedabad, Gujarat, India

Packet Classification Using Dynamically Generated Decision Trees

Improving the Efficiency of Fast Using Semantic Similarity Algorithm

Developing Focused Crawlers for Genre Specific Search Engines

WebParF:A Web Partitioning Framework for Parallel Crawler

Character Recognition

Collaborative Filtering using Euclidean Distance in Recommendation Engine

The Evolution of the Web and Implications for an Incremental Crawler

INDEXING FOR DOMAIN SPECIFIC HIDDEN WEB

A Jini Based Implementation for Best Leader Node Selection in MANETs

World Wide Web has specific challenges and opportunities

E-MINE: A WEB MINING APPROACH

A Novel Architecture of Ontology-based Semantic Web Crawler

Pivoting M-tree: A Metric Access Method for Efficient Similarity Search

A NOVEL APPROACH TO INTEGRATED SEARCH INFORMATION RETRIEVAL TECHNIQUE FOR HIDDEN WEB FOR DOMAIN SPECIFIC CRAWLING

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System

AN OVERVIEW OF SEARCHING AND DISCOVERING WEB BASED INFORMATION RESOURCES

A Review on Identifying the Main Content From Web Pages

Clustering Algorithms for Data Stream

Content Based Smart Crawler For Efficiently Harvesting Deep Web Interface

Efficient extraction of news articles based on RSS crawling

FILTERING OF URLS USING WEBCRAWLER

Looking at both the Present and the Past to Efficiently Update Replicas of Web Content

Query- vs. Crawling-based Classification of Searchable Web Databases

Graph Based Approach for Finding Frequent Itemsets to Discover Association Rules

Weighted Page Rank Algorithm Based on Number of Visits of Links of Web Page

Personalizing PageRank Based on Domain Profiles

Focused Web Crawler with Page Change Detection Policy

HYBRIDIZED MODEL FOR EFFICIENT MATCHING AND DATA PREDICTION IN INFORMATION RETRIEVAL

A survey: Web mining via Tag and Value

An Enhanced Page Ranking Algorithm Based on Weights and Third level Ranking of the Webpages

Keywords: web crawler, parallel, migration, web database

Anti-Trust Rank for Detection of Web Spam and Seed Set Expansion

Selection of a Scheduler (Dispatcher) within a Datacenter using Enhanced Equally Spread Current Execution (EESCE)

Indexing in Search Engines based on Pipelining Architecture using Single Link HAC

Efficient extraction of news articles based on RSS crawling

Multi-Modal Data Fusion: A Description

Proposed System. Start. Search parameter definition. User search criteria (input) usefulness score > 0.5. Retrieve results

Improvement of Web Search Results using Genetic Algorithm on Word Sense Disambiguation

Egemen Tanin, Tahsin M. Kurc, Cevdet Aykanat, Bulent Ozguc. Abstract. Direct Volume Rendering (DVR) is a powerful technique for

REDUNDANCY REMOVAL IN WEB SEARCH RESULTS USING RECURSIVE DUPLICATION CHECK ALGORITHM. Pudukkottai, Tamil Nadu, India

Ranking Clustered Data with Pairwise Comparisons

Frequent Item Set using Apriori and Map Reduce algorithm: An Application in Inventory Management

Plan for today. CS276B Text Retrieval and Mining Winter Evolution of search engines. Connectivity analysis

A Firewall Architecture to Enhance Performance of Enterprise Network

A GEOGRAPHICAL LOCATION INFLUENCED PAGE RANKING TECHNIQUE FOR INFORMATION RETRIEVAL IN SEARCH ENGINE

Survey on Reliability Control Using CLR Method with Tour Planning Mechanism in WSN

Competitive Intelligence and Web Mining:

Today s lecture. Information Retrieval. Basic crawler operation. Crawling picture. What any crawler must do. Simple picture complications

Transcription:

Architecture of A Scalable Dynamic Parallel WebCrawler with High Speed Downloadable Capability for a Web Search Engine Debajyoti Mukhopadhyay 1, 2 Sajal Mukherjee 1 Soumya Ghosh 1 Saheli Kar 1 Young-Chon Kim 2 1 Web Intelligence & Distributed Computing Research Lab, Techno India (West Bengal University of Technology) EM 4/1, Salt Lake Sector V, Calcutta 700091, India Emails: {debajyotimukhopadhyay, sajalmukherjee, soumyaghos, sahelikar}@gmailcom 2 Chonbuk National University, Division of Electronics & Information Engineering 561-756 Jeonju, Republic of Korea; Email: yckim@chonbukackr ABSTRACT Today World Wide Web () has become a huge ocean of information and it is growing in size everyday Downloading even a fraction of this mammoth data is like sailing through a huge ocean and it is a challenging task indeed In order to download a large portion of data from, it has become absolutely essential to make the crawling process parallel In this paper we offer the architecture of a dynamic parallel Web crawler, christened as "WEB-SAILOR," which presents a scalable approach based on Client- model to speed up the download process on behalf of a Web Search Engine in a distributed Domain-set specific environment WEB-SAILOR removes the possibility of overlapping of downloaded documents by multiple crawlers without even incurring the cost of communication overhead among several parallel "client" crawling processes Keywords Web-crawler, Parallel-crawler, Seed-server, Crawl-client, Overlapping, Scalability, DSet, -Registry, -Node, 1 INTRODUCTION A crawler also popularly known as spider or robot is a program which visits Web servers spread across the world irrespective of their geographical locations, downloads and stores Web documents on a local machine mostly on behalf of a Web Search Engine[1][2][3] The functionalities of a Web crawler is given below: The crawler starts crawling with a set of s fed into it, known as seed s The crawler downloads the page It extracts the s from the downloaded page and inserts them into a queue From the queue the crawler again retrieves the for downloading next pages The downloaded page is saved in the repository The process continues until the crawler stops In order to maximize the download rate, if multiple crawling processes are employed in parallel then the resulting crawler is termed as a "parallel crawler"[1][6] While designing a dynamic parallel crawler we faced the following design challenges: Preventing the overlapping of Webpages among concurrently running crawling processes ie, no two crawlers should download and store the same Web document Maintaining the high quality of downloaded documents during the crawling process Minimizing the communication overhead among the concurrently running crawling processes, that is evident in any parallel crawler implementation Here we discuss in brief the basic idea of parallel crawlers Then we will look into architectures of static crawlers, their drawbacks and overcoming those drawbacks with the help of our dynamic parallel crawler - 103 -

2 GENERAL CONCEPT OF PARALLEL CRAWLERS A parallel crawler is implemented by means of more than one crawling processes, each individually downloading and storing pages In order to co-ordinate the activities of these crawling processes, there must be some form of communication between them Depending upon the method of co-ordination, parallel crawlers can be classified into two categories: (1) Static and (2) Dynamic 21 Static crawlers In case of these crawlers the Web is partitioned and assigned statically to individual crawling processes and each one of them is aware of others' assignments ie, which crawling process is responsible for a particular Web document [1,6,7] In this class of parallel crawlers, there is no central controller module to co-ordinate the activities of individual crawling processes Independent crawler: Crawlers may crawl independently without communicating with each other All the decisions of crawling have to take by the individual crawler After downloading and parsing a page the crawler may find an that belongs to another crawler The crawler may handle this in two ways: It may discard the and continue to crawl on its own partition erasing any possibility of overlap This mode is termed as the Firewall mode[1] Here many important s will be lost reducing the quality of the ultimate search result Second way to overcome this problem is that the crawler will download the page of the other partition which is termed as the Cross-over mode It may result in downloading a single page more than once ie, overlapping of a page will occur Communicating crawler: In the Exchange mode, there is an intercommunication link between every two crawler When a crawler gets an that belongs to other partition it sends it to the crawler which is responsible for downloading that page There are certain drawbacks of this design Communication overhead is the first drawback of communicating crawler As the number of crawlers increases the need of communication links will also increases, causing a communication overhead Say, for example, a crawler c1 after visiting a page gets s of crawler c2, c3 & c4 respectively First it will send the of c2 to c2 and then similarly to c3 and c4 In the meantime the crawler c1 pauses its crawling until the communication is complete Thus we see that there is also a delay in the process 22 Dynamic crawlers In case of "dynamic crawlers" a central controller module divides the Web into a number of logical partitions and dynamically assigns each partition to an individual crawling process[1][6] Here the controller provides each crawler with a set of seed s from which it starts crawling 3 OUR APPROACH Due to the enormous size of the Web we would naturally want to visit high quality popular pages first Initially we have considered the back-link count as the quality metric ie, we would like to visit pages in the order of their back-link counts [2][3][8] 31 Partitioning Scheme: We have partitioned the Web on the basis of the domain extensions such as com, edu, net, biz etc A crawler can also visit a set (which we are calling DSet) of such domains Say for example A crawler can crawl a domain-set or DSet D:{net, biz} Note that each of our crawling Get Seed Load Page Parse Page Store Page : http:// Out going links: Figure 1: Functional view of Crawl-client processes which we named as Crawl-clients crawl a single DSet in its lifetime ie, there is no - 104 -

exchange of partitions The functional architecture of WEB-SAILOR is shown in Figure1 Each Crawl-client receives seed for its DSet, loads the Web-page, parses the page for outbound links and stores them for future consideration and finally saves the downloaded page into local repository for indexing As the whole Web is partitioned among the crawlers domain-wise, there is no question of overlapping Sometimes a Web page of a particular domain may be populated with links to several Web pages of some other domain Most practical example could be a Website of online bookstore in com domain (eg, wwwamazoncom) which is very popular in edu domain as many universities publish booklists with links to such online book store In such cases, using static crawlers will either degrade the ultimate search result quality (in case of Independent Crawlers, as a popular page is discarded) or crawl decision quality will be deteriorated(in case of Communicating Crawlers, as visiting a popular page is delayed) This is where the concept of Seed-server comes in Download Pages C1 sends Seed s due to the fact that in such systems no single crawler has the complete view of the entire Web In our design, higher level Seed-server(s) have the global image of the Web and they will make the crawling decision instead of the clients In our proposed architecture of WEB-SAILOR, depicted in Figure2, each Crawl-client crawls different partitions ie, different DSets It receives seed s from Seed-server and then sends the parsed outbound s back to the server without following them directly The Seed-server maintains a DSet-wise global index of back-link counts for s which we termed as the -Registry and updates it as more outbound references come from Crawl- Clients If available (ie, the page has been crawled previously), server can also use other ranking indexes [8][9][10] 33 -Registry Structure In our design, we have built a DSet-wise, global, central data-structure ie, the -Registry which is maintained at the server to keep track of Buckets 1 -Node C2 C3 Crawlers return parsed s Seed {INDEX} Figure 2: Crawling Architecture of WEB-SAILOR 32 Centric Approach Static parallel crawlers suffer from poor crawling decision ie, which Web-pages to crawl next, 2 3 n Figure 3: -Registry Structure - 105 -

all the s of that particular DSet and their back-link counts The -Registry is a hashbased structure where a hash function is used to generate a unique of each [3] The -Registry consists of n number of buckets each bucket consists of 0 or more number of -Nodes as given in the Figure3 Modular division of by n obtains the appropriate bucket for a particular -Node Each - Node consists of 4 fields: : Stores the unique value generated by using the hash function on the : Stores the as a string count: Stores the back-link count of the The count is incremented each time it is referred by a Web page : This field is marked if the page corresponding to the is We have maintained a separate - Registry for each DSet This increases the parallelism as multiple s can be retrieved from different -Registry structures corresponding to different DSets Another advantage of the -Registry structure is that we can decrease the time required for searching a particular node by increasing the value of n, ie, the number of buckets As the structure expands vertically, the horizontal size for the buckets decreases resulting in a decrement in linear search, which is time consuming 4 ADVANTAGES OF OUR APPROACH This server centric approach has several advantages such as improved crawling decision, less network load on Web servers, dynamic load balancing etc We will explain them below 41 Improving Crawling Decision: In this system, the Seed-server has the quality metric ie, the back-link counts for all the pages in all the partitions Hence the crawling decision quality will always be as good as that of a single crawler but the pages will be downloaded concurrently 42 Minimizing Web Load A large scale crawler comes with a responsibility of not overloading any Web server It has been observed that a Web-page contains a significant amount of links pointing towards its own Web server Crawl-clients send all outbound links from a page to the Seed-server and Seed-server sends most popular un links to clients as seed This popularity is measured globally among all known s of all partitions We consider it improbable that a large number of pages of a Web server to have same popularity Hence it is unlikely that a number of pages of same Web server will be downloaded concurrently 43 Dynamic Load Balancing In our design the Seed- can globally monitor performance of each Crawl-client of all partitions We can take the number of seed s pointing towards a partition as its popularity metric Each client maintains a number of connections to download pages concurrently If server notices that it has less (than a threshold number of) seed for a particular DSet it will send a message to the Crawl-client corresponding to that DSet to slow down and the client will reduce the number of parallel connections Similarly when the server sees a huge amount of seeds for a particular DSet it asks the -Side Client-Side C1 http:// Figure 4a: Connections before Load Balancing -Side Client-Side C2 C1 C2 Figure 4b: Connections after Load Balancing corresponding Crawl-client to hurry up ie, to - 106 -

increase the number of concurrent connections These phenomena are shown in Figure4a and Figure4b respectively 44 Scalability Our approach is inherently more scalable than other communicating crawlers as in case of this genre of crawlers, a crawling process must communicate with all other crawling processes as necessary[4] If there are N numbers of such processes running, they will require total N! connections to communicate to each other Addition of more crawlers at run time is also difficult as the new one must notify all Figure 5: Scalable Design for very large scale crawling system other existing crawling processes In our design, N number of crawling processes needs to maintain only N connections with the Seedserver and the addition of a new Crawl-client is only visible to the seed-server Of course there will be a limitation on the number of Crawlclients under a single server depending on its hardware capability In order to scale-up the system further one may use the same structure recursively The design is shown in Figure5 with two additional servers Seed server S 1 & S 2 is serving N & M clients respectively, where C ij implies j th Crawl-client of the i th Seed-server If S 2 receives an which does not fall into the DSets of its own clients, it will send it to the higher level server S 12 which in turn route it to appropriate seed server S 1 C 11 C 12 C 1N C 21 C 22 S 12 : S 1 US 2 sends other S to higher level server S 1 S 2 Higher level server sends seed s to appropri ate seedserver 5 EXPERIMENTAL SETUP In our prototype we have used two machines as Crawl-clients and one as Seed-server One client was used as client for com domain; the other was used for downloading pages of edu, net, & org We varied the number of initial connection for each Crawl-client to observe the performance of the server Also, the Crawl-client crawling the com domain was given more number of initial connections considering the huge number of pages in com domain We made the server multithreaded so that it can handle client requests (for dispatching seeds & receiving links) No of Pages Downloaded 1000 900 800 700 600 500 400 300 Client1 with 25 Connections Client2 with 10 Connections Total Performance C 2M 200 100 0 0 5 10 15 Time in Minutes Figure 6: Performance of the Crawling System - 107 -

concurrently Figure6 shows three different graphs, one for Client 1 with 25 connections, other for Client 2 with 10 connections and there is one showing total performance We also added a third client in the system at runtime to see the effect on the server Rate of number of pages downloaded remain steady in all the cases 6 CONCLUSION & FUTURE WORK Parallel Crawler is an integral part of any largescale Search Engine design But due to of the secrecy maintained by the industry, little has been known about the modern trends of research in this area Our paper is an effort to highlight a new -centric, dynamic, scalable approach of designing a parallel crawler which has been able to solve a number of problems that are inherent in any parallel crawler Firstly, our approach has been able to remove the possibility of overlapping of Web pages downloaded by different Crawl-clients In our design, all the crawl decisions are made by the Seed-server only The multithreaded Seedserver sends un s as seed from a domain set-wise -Registry maintained by the Seed-server So there is no question of redundant downloading by the Crawl-clients Secondly, we have been able to reduce the network load considerably resulting in better utilization of communication band-width In our approach, since all the communication takes place between the Seed-server and the Crawlclients only and the Crawl-clients don t need to communicate among themselves at all, so the number of communication paths is much less and adding new clients during run time incurs less overhead Thirdly, our architecture is not dependant upon any particular ranking scheme Since the crawl decisions are solely made by the server, so it can accommodate any combination of ranking mechanisms and/or any other quality metric such as freshness of pages to maintain the high quality of downloaded pages This feature adds to flexibility of our approach Lastly, this design offers a highly scalable approach towards designing parallel crawlers Due to the self-recursive nature of our design, with the availability of adequate amount of resources, the prototype we have built can be extended hierarchically that will definitely result in a parallel crawler that can exploit a greater degree of parallelization We are planning to carry on this as a part of our future work REFERENCES 1 Junghoo Cho and Hector Garcia-Molina; Parallel Crawlers; In Proceedings of 2002, Honolulu, Hawaii, USA ACM 1-58113-449-5/02/0005, May 7-11,2002 2 Sergey Brin and Lawrence Page; The anatomy of a large-scale hypertextual Web search engine; In Proceedings of Conf, 1998 3 Arvind Arasu, Junghoo Cho, Hector Garcia- Molina, Andrews Paepcke and Sriram Raghavan; Searching the Web; In Proceedings ACM International Conference on Management of Data (SIGMOD) Conference, May 2000 4 A Barabasi and R Albert; Emergence of Scaling in Random Networks; Science, 286(509), 1999 5 Junghoo Cho and Hector Garcia-Molina; The evolution of the Web and implications for an incremental crawler; In Proceedings of VLDB Conf, 2000 6 Junghoo Cho and Hector Garcia-Molina; Parallel crawlers; Technical report, UCLA Computer Science, 2002 7 Junghoo Cho, Hector Garcia-Molina, and Lawrence Page; Efficient crawling through ordering; In Proceedings of Conf, 1998 8 Debajyoti Mukhopadhyay, Debasis Giri, Sanasam Ranbir Singh; An Approach to Confidence Based Page Ranking for User Oriented Web Search; SIGMOD Record, Vol32, No2, June 2003; pp 28-33 9 Debajyoti Mukhopadhyay, Sanasam Ranbir Singh; An Algorithm for Automatic Web- Page Clustering using Link Structures; IEEE INDICON 2004 Proceedings; IIT Kharagpur, India; 20-22 December 2004; pp 472-477 10 Debajyoti Mukhopadhyay, Pradipta Biswas; FlexiRank: An Algorithm Offering Flexibility and Accuracy for Ranking the Web Pages; ICDCIT 2005; India; LNCS, Springer-Verlag, Germany; 22-24 December 2005; pp 308-313 - 108 -