分布式爬虫系统

写在前面:

1. 整个爬虫系统,简介:采用Thrift,Netty作为模块通信和网络通信,使用Zookeeper实现分布式管理,底层存储使用HBase。

2. 动静结合爬取模块实现方式。

3. 智能提取算法,相似性SimHash算法,PageRank改进算法等,实现爬取策略,爬取调度。

4. 可扩展性,a.对于主题爬虫(垂直爬虫),站点爬虫灵活充分转变。b. 爬虫性能水平扩展。

5. 爬取状态监控。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

架构与模块

整个系统架构分为至少3个以上的模块,包括调度中心,爬取模块,信息提取模块,种子管理,监控模块。其中尽可能保证各模块之间异步通信。

保证各个模块之间最小单元化,最小功能化。

1. 调度中心

        其中调度中心,负责种子投递,监控种子状态,包括延时处理,状态标记等,维护系统爬取效率,网络通信,模块通信等各方面。

实现thrift相关接口。

2. 爬取模块

实现爬取任务,作为独立模块,基于约定实现thrift接口

实现动静网页的爬取,基于Http请求,Webkit/HttpUnit/selumn第三方渲染方式实现页面下载。主要处理各种网络问题,包括cookie,bot协议,封闭网络等。

3. 信息提取

同2.

主要目的在于制定爬取策略。独立于其他模块

a. 可以基于xpath等信息,提取页面信息

b. 基于智能算法提取页面信息

c. 基于pageRange提取种子信息,实现抓取策略

以上3个模块为主要模块,整体依据thrift接口实现模块通信。


分布式爬虫系统_第1张图片


你可能感兴趣的:(Architecture,乱七八糟,Hadoop/HBase)