论文部分内容阅读
随着互联网技术、社交网络和移动网络的高速发展,对于海量数据的收集、分析、应用和预测已经成为各个领域的研究热点。目前,对海量数据的采集主要是整个网络范围的采集,比如各种搜索引擎,或者是单机模式的采集,这样的数据采集方案没有针对性或者性能较差。因此,分布式的垂直采集方案由此产生。本文设计并实现了基于分布式模型的微博数据采集系统。数据采集采用模拟浏览器登陆后抓取页面以及解析页面的设计方案,考虑到可扩展性,系统架构采用Master/Slave的分布式模型。整个系统包括控制节点和工作节点两大部分。1)控制节点负责任务调度、任务状态检测和爬取数据的存储,其中任务调度模块采用基于优先级的FIFO算法实现,任务状态通过周期性的心跳机制检测,而数据存储采用批量数据存储方案。2)工作节点主要负责任务执行、任务状态汇报和任务申请。任务执行使用HTTPClient工具进行页面数据抓取,然后使用XQuery模板对目标数据进行解析。任务状态汇报基于工作节点周期性地向控制节点汇报本地任务的执行状态信息,便于控制节点对全局的管理。而任务申请模块采用线程池饱和运行策略决定任务申请个数。经过功能测试之后本系统现在已经能够正常稳定运行,在性能方面还有待提升,之后还需要在一些设计和实现方面做出有效调整和改进,使其能够更加稳定高效地工作。