一种分布式部署的网络数据采集系统技术方案

技术编号:21914095 阅读:26 留言:0更新日期:2019-08-21 12:28
本发明专利技术公开了一种分布式部署的网络数据采集系统,包括任务管理模块、爬虫模块、分布式存储模块、监测报警模块和主控节点模块;其中,所述任务管理模块负责存储URL库、维护网页采集任务状态、管理采集任务的进队与出队、URL种子定时调度、缓存已采集URL和商品SKU;所述爬虫模块用于完成采集和解析网页,以两个以上独立的实例进程分布到不同节点机器上运行,以多线程的模式采集并解析网页;所述监测报警模块能够主动发现爬虫节点宕机的情况,并通知系统运维人员。

A Distributed Deployment Network Data Acquisition System

【技术实现步骤摘要】
一种分布式部署的网络数据采集系统
本专利技术涉及计算机互联网数据采集技术,尤其涉及一种分布式部署的网络数据采集系统。
技术介绍
自动获取网页内容,解析网页链接,并按照指定规则提取相应数据的程序,就是爬虫。传统的爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,同时按照给定规则提取网页上的有用数据,在抓取网页的过程中,不断从当前页面上抽取新的URL并放入队列,直到满足系统给定的停止条件。随着互联网在人类经济社会中的应用日益广泛,其所涵盖的信息规模呈指数增长,信息的形式和分布具有多样化、全球化特征,通用爬虫已经不适用于指定方向的海量数据持续采集的需求,传统的通用爬虫存在一些不足:1、通用爬虫采集全站数据,不能指定领域定向采集;2、传统爬虫只单机采集数据,采集速度慢;3、传统爬虫采集回来的数据存储在单节点的关系型数据库,数据量小。
技术实现思路
本专利技术所要解决的技术问题是建立爬虫集群,分布式部署,持续并且并行地采集网络定向数据,以分布式存储系统组织海量数据,提供数据服务的系统。为解决上述技术问题,本专利技术提供了一种分布式部署的网络数据采集系统,包括任务管理模块、爬虫模块、分布式存储模块、监测报警模块和主控节点模块;其中,所述任务管理模块负责存储URL库、维护网页采集任务状态、管理采集任务的进队与出队、URL种子定时调度、缓存已采集URL和所采集特定商品的SKU(StockKeepingUnit,库存量单位),特定商品是指电商平台的商品或者品牌官方网站的商品,例如:家电、厨具、3c数码、酒水、等,具体在URL种子中设定;所述爬虫模块用于完成采集和解析网页,并以两个以上独立的实例进程分布到不同节点机器上运行,以多线程的模式采集并解析网页;所述监测报警模块能够主动发现爬虫进程宕机的情况,并通知系统运维人员。所述任务管理模块包括任务状态库、任务管理器和URL种子定时器;所述爬虫模块包括动态IP代理器、网页下载器、网页解析器和日志记录器;所述分布式存储模块包括数据存储器、Kudu存储引擎和Impala查询引擎;所述监测报警模块包括监控报警器、Zookeeper注册器和Zookeeper服务器;所述主控节点模块包括RPC通信、速度控制、任务队列管理和爬虫启停。所述任务状态库用于任务状态存储,以及URL和商品SKU缓存,任务状态库存储任务状态信息到MySQL数据库中,利用MySQL的行级事务确保单个任务的原子性操作;所述任务管理器负责维护任务的生命周期,更新任务的不同状态,实现任务的出队与入队功能,确保任务队列操作的隔离安全,即同一个任务只分派给一个爬虫的一个线程;在采集最初始阶段时,URL种子定时器把预先配置的种子URL注入任务队列中,其中种子URL即为最初始的商品列表页URL;任务出队时,优先选择采集商品列表页的任务出队,通过爬虫模块下载此URL网页并解析出该网页中出现的商品列表页URL和商品详情页URL,然后将这些新解析出的URL放入任务队列中,当未开始任务队列中已没有商品列表页的任务时,才选择采集商品详情页的任务出队;任务入队时,把网页解析器解析出来的所有商品列表页和商品详情页的任务加入到队列中。当所有商品列表页和商品详情页都采集完后,系统就一直处于空闲状态,URL种子定时器负责定时把所有种子URL注入到任务队列中,激活系统运转,URL种子定时器是一个独立的进程。所述任务管理器具备断点恢复的功能,爬虫实例进程记录下当前正在处理的所有任务,当爬虫实例进程从失效状态恢复时,从断点开始继续任务。所述动态IP代理器具备创建并维护IP库功能和代理IP失败统计功能,当一个代理IP失败次数达到预设的阈值时,把该代理IP从IP库中剔除,并以日志的方式记录下来;所述网页下载器从任务中获得网页URL,通过HTTP请求下载相应的网页,爬虫实例进程创建Page对象,将下载的网页HTML脚本以文本的方式注入到Page对象中,把此Page对象传递给网页解析器;所述网页解析器用于完成两个功能:从商品列表页里解析出所有商品详情页的URL、以及下一张商品列表页URL,并注入到Page对象的对应数据项中;从商品详情页里提取出商品属性相关的信息数据,并注入到Page对象的对应数据项中;爬虫进程将解析出来的URL构建任务并加入到任务队列中,并把Page对象传递给分布式存储模块的数据存储器做数据入库;所述日志记录器提供爬虫进程在关键运行位置记录重要日志信息的功能。所述数据存储器用于把Page对象的数据存储到数据库中;所述Kudu存储引擎和Impala查询引擎提供了基于SQL的即时数据查询功能。所述监测报警模块通过如下方式实现报警功能:在Zookeeper服务器上创建项目节点,每个爬虫启动时,Zookeeper注册器在Zookeeper的项目节点下以爬虫主机IP注册一个临时节点目录,当爬虫宕机时,该临时节点目录会被Zookeeper删除,监控报警器运行监控程序对项目节点目录进行监听,当节点下有目录数量改变时,Zookeeper会给监控程序发送通知,回调程序执行报警动作发送邮件给系统运维人员,从而完成监控报警的功能。所述系统通过任务管理器结合MySQL数据库的行级锁机制来管理任务队列,MySQL数据库实现任务的安全隔离功能。所述系统还能够通过主控节点模块管理所有爬虫的启动、暂停和故障恢复,通过RPC协议进行主控节点模块和爬虫实例进程之间的通信。本专利技术具有以下控制优点:1、多线程、多节点分布式爬虫:同一程序包部署到多个节点,多个爬虫实例并行运行,分别随机采集多个网站数据,提高采集的速度;2、任务管理模块随机调度任务和URL:根据网站的顶级域名随机分派网页URL,形成客户端爬虫需要完成的任务,爬虫任务包括全量网页数据采集、新品发现与采集、每天商品价格采集、等;定时向URL库添加种子URL;3、动态IP代理库:每次网页下载前都动态构造代理IP,以应对网站对固定IP的流量限制;4、可扩展的网页解析器:整合多个网站的网页解析器,根据网站顶级域名选择相应解析器定向提取有用的URL和商品详情数据;5、分布式存储系统:采用线性扩容的分布式存储系统保存历史的、新增的网页原始数据和解析网页后提取的结构化数据;6、爬虫节点监测报警模块:监测所有爬虫的运行状态,并发送邮件报告异常情况。附图说明下面结合附图和具体实施方式对本专利技术做更进一步的具体说明,本专利技术的上述或其他方面的优点将会变得更加清楚。图1是本专利技术系统架构图。具体实施方式下面结合附图及实施例对本专利技术做进一步说明。如图1所示,本专利技术公开了一种分布式部署的网络数据采集系统,该系统是一种分布式爬虫系统,包括任务管理模块、爬虫模块、分布式存储模块、监测报警模块和主控节点模块;任务管理模块:任务状态库、任务管理器、URL种子定时器;爬虫模块:动态IP代理器、网页下载器、网页解析器、日志记录器;分布式存储模块:数据存储器、Kudu存储引擎、Impala查询引擎;监测报警模块:监控报警器、Zookeeper注册器、Zookeeper服务器;主控节点模块:RPC通信、速度控制、任务队列管理、爬虫启停。1、任务管理模块负责存储URL库、维护网页采集任务状态、管理采集任务的进队与出队、URL种子定时调度、缓存已采集URL和商品S本文档来自技高网...

【技术保护点】
1.一种分布式部署的网络数据采集系统,其特征在于,包括任务管理模块、爬虫模块、分布式存储模块、监测报警模块和主控节点模块;其中,所述任务管理模块负责存储URL库、维护网页采集任务状态、管理采集任务的进队与出队、URL种子定时调度、缓存已采集URL和所采集特定商品的库存量单位SKU;所述爬虫模块用于完成采集和解析网页,并以两个以上独立的实例进程分布到不同节点机器上运行,以多线程的模式采集并解析网页;所述监测报警模块能够主动发现爬虫进程宕机的情况,并通知系统运维人员。

【技术特征摘要】
1.一种分布式部署的网络数据采集系统,其特征在于,包括任务管理模块、爬虫模块、分布式存储模块、监测报警模块和主控节点模块;其中,所述任务管理模块负责存储URL库、维护网页采集任务状态、管理采集任务的进队与出队、URL种子定时调度、缓存已采集URL和所采集特定商品的库存量单位SKU;所述爬虫模块用于完成采集和解析网页,并以两个以上独立的实例进程分布到不同节点机器上运行,以多线程的模式采集并解析网页;所述监测报警模块能够主动发现爬虫进程宕机的情况,并通知系统运维人员。2.根据权利要求1所述的系统,其特征在于,所述任务管理模块包括任务状态库、任务管理器和URL种子定时器;所述爬虫模块包括动态IP代理器、网页下载器、网页解析器和日志记录器;所述分布式存储模块包括数据存储器、Kudu存储引擎和Impala查询引擎;所述监测报警模块包括监控报警器、Zookeeper注册器和Zookeeper服务器;所述主控节点模块包括RPC通信、速度控制、任务队列管理和爬虫启停。3.根据权利要求2所述的系统,其特征在于,所述任务状态库用于任务状态存储,以及URL和商品SKU缓存,任务状态库存储任务状态信息到MySQL数据库中,利用MySQL的行级事务确保单个任务的原子性操作;所述任务管理器负责维护任务的生命周期,更新任务的不同状态,实现任务的出队与入队功能,确保任务队列操作的隔离安全,即同一个任务只分派给一个爬虫的一个线程;在采集最初始阶段时,URL种子定时器把预先配置的种子URL注入任务队列中,其中种子URL即为最初始的商品列表页URL;任务出队时,优先选择采集商品列表页的任务出队,通过爬虫模块下载此URL网页并解析出该网页中出现的商品列表页URL和商品详情页URL,然后将这些新解析出的URL放入任务队列中,当未开始任务队列中已没有商品列表页的任务时,才选择采集商品详情页的任务出队;任务入队时,把网页解析器解析出来的所有商品列表页和商品详情页的任务加入到队列中;当所有商品列表页和商品详情页都采集完后,系统就一直处于空闲状态,URL种子定时器负责定时把所有种子URL注入到任务队列中,激活系统运转,URL种子定时器是一个独立的进程。4.根据权利要求3所述的系统,其特征在于...

【专利技术属性】
技术研发人员:钟证业
申请(专利权)人:汇通达网络股份有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1