一种基于志愿者计算的多租户专业云爬虫的制作方法

文档序号:9687549阅读:515来源:国知局
一种基于志愿者计算的多租户专业云爬虫的制作方法
【技术领域】
[0001] 本发明设及网络信息采集领域,尤其设及一种基于志愿者计算的多租户专业云爬 虫。
【背景技术】
[0002] 如今已经进入了一个数据爆炸的时代,随着互联网、移动互联网技术的发展,Web 已经变成数据分享的平台,那么,如何让人们在海量的数据中想要找到他们需要的信息将 变得越来越难。
[0003] 在运样的情形下,通用捜索引擎(Google, Bing,百度等等)成为大家快速找到目标 信息的最好途径。在用户对自己需求相对明确的时候,用通用捜索引擎很方便的通过关键 字捜索很快的找到自己需要的信息。但通用捜索引擎并不能完全满足用户对信息发现的需 求,那是因为在很多情况下,一是由于通用捜索引擎本身存在网络覆盖率低、漏检率高等局 限性,不能为用户提供精确全面的信息;其次用户的需求很难用简单的关键字来表述。由于 通用捜索引擎的W上不足,用户为了获取特定的主题信息,必须自己构建不同的主题爬虫 来采集互联网特定信息。但是对于普通用户,构建一个易于扩展、稳定的网络爬虫并不是一 件容易的事,因为要考虑到册L去重,动态网页采集、网页内容解析、实时增量更新、爬虫IP 资源,爬虫调度、反爬等问题,如果爬取的目标网页内容很多,还需要考虑海量数据存储问 题。鉴于通用捜索引擎的不足及普通用户构建爬虫所面临的难点,提出一种基于志愿者计 算的多租户专业云爬虫实现方法来克服。
[0004] 志愿者计算是通过互联网让全球的普通大众志愿提供空闲的P別寸间,参与科学计 算或数据分析的一种计算方式。志愿者计算模式当前主要运用在科学计算等一些基础性领 域。
[000引云计算是一种按使用量付费的模式,运种模式提供可用的、便捷的、按需的网络访 问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),运些资 源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
[0006] 多租户的概念最早起源于软件领域,指一个软件实例服务于多个用户的架构。每 个用户称为一个租户。利用多租户技术,可W实现资源的高度共享,从而提高资源利用率, 降低单位资源成本。多租户也是云计算的基本属性之一,云计算的Ξ种服务层次一SaaS、 化aS和laaS均体现了对多租户不同的支持。
[0007] 互联网信息采集问题是一个比较通用的需求,大到百度、腾讯、阿里等运样的互联 网公司,小到开发天气预报APP的公司都有爬取数据的需求,目前对互联网信息采集的解决 方案主要是每个用户根据自己的需求,开发构建一套爬虫系统,对那些中小企业客户也不 例外。而构建一个爬虫系统,不仅面临上文所说的普通用户构建网络爬虫所面临的难点,而 且还需要网络带宽、服务器等硬件资源。而对中小企业客户来说,由于大部分爬取的站点比 较少且不频繁,导致企业很多带宽和服务器资源空闲。

【发明内容】

[0008] 本发明为克服上述的不足之处,目的在于提供一种基于志愿者计算的多租户专业 云爬虫,帮助用户特别是中小企业用户高效快速采集互联网信息,解决了现有技术中存在 的问题,本发明通过W下技术方案达到上述目的:一种基于志愿者计算的多租户专业云爬 虫,包括用户管理客户端,所述用户管理客户端是用户管理的口户,向用户提供W邸接口及 REST API服务,用户通过管理口户,定义爬虫任务,提交爬虫任务,设定爬虫参数,查看爬虫 运行情况及获取爬取回来的数据,还包括爬虫服务端,爬虫采集客户端,所述爬虫服务端实 现爬虫任务的调度和爬取回来的数据处理;所述爬虫采集客户端由连接在互联网上的各种 相对空闲主机组成,采集互联网站点数据,收集运行主机的网络带宽速率的信息,用于爬虫 任务的调度管理;所述爬虫服务端包括分布式调度和分布式处理,所述分布式调度实现爬 虫任务的调度、爬虫采集客户端资源的管理及接收爬虫采集客户端返回来的数据;所述分 布式处理接收爬虫采集客户端返回的数据,立即将数据进入分布式消息队列,实时的去消 费消息队列里面的数据,W流式的方式处理数据。
[0009] 进一步的,所述分布式调度包括调度器、爬取任务信息汇报器、用户信息汇报器、 爬虫节点负载信息汇报器及爬虫集群负载信息收集器,爬虫节点负载信息汇报器收集爬虫 采集客户端的负载信息,并将负载信息定期发送给爬虫集群负载信息收集器,调度器在负 载均衡的过程中通过爬虫集群负载信息收集器获得所有爬虫采集客户端的负载信息,并根 据用户信息汇报器和爬虫任务信息汇报器做出负载均衡决策。
[0010] 进一步的,所述调度器收集各种信息的主要步骤包括:
[0011] (1)爬虫节点负载信息汇报器到爬虫集群负载信息收集器注册,爬虫节点负载信 息汇报器发送节点的IP和主机名到爬虫集群负载信息收集器,爬虫集群负载信息收集器对 爬虫节点的IP进行注册,创建该爬虫节点负载信息对象,该爬虫节点负载信息汇报器发送 的负载信息都将存在该对象中;
[0012] (2)爬虫节点负载信息汇报器获得爬虫节点网络带宽的利用率,上述爬虫节点负 载信息汇报器获得爬虫节点网络带宽的利用率的实现过程为:
[0013] a)计算最近一次间隔时间内平均网络带宽利用率,计算公式如下:
[0014]
[0015] b)计算最近一次间隔时间内平均可提供网络带宽速率,计算公式如下:
[0016] 平均可提供网络带宽速率=最大可提供网络带宽速率-平均已使用网络带宽速 率.
[0017] C)估计爬虫节点执行任务期间可提供网络带宽速率,W此作为爬虫节点负载信 息,为爬虫节点负载信息汇报器启动时刻记为to,间隔时间记为*心4时刻记为ti,依次类 推,to+n X t时刻记为tn,( tn-l,tn)时间间隔内的平均网络带宽速率记为rn(n Μ),rn可W由 步骤(a巧Ij步骤(C)得到,任务完成时刻记为*:,(心成)时间内的平均网络带宽速率记为尺。, 则Rn的预估公式如下:
[001 引
其中,ae(0,l);
[0019] (3)爬虫节点负载信息汇报器将节点执行任务期间可提供网络带宽速率作为负载 信息发送到爬虫集群负载信息收集器,所有机器上的爬虫节点负载信息汇报器均需要定时 将负载信息报告给爬虫集群负载信息收集器,时间间隔根据系统规模来确定。
[0020] 进一步的,所述调度器在获得各个爬虫采集客户端负载信息情况后,构建一个两 层结构的资源池对爬虫采集客户端资源进行管理,调度器在调度任务时,W用户为单位来 分配资源,具体算法如下所示:
[0021 ]当出现一个空闲爬虫采集客户端时,调度器会将此爬虫采集客户端分配给缺额最 大的爬虫用户,系统每隔500毫秒更新一次信息,包括:用户缺额、用户权重、最小共享量、公 平共享量;
[0022] (1)用户权重计算方法;
[0023] 默认情况下,用户权重是基于用户等级的,但也可W基于用户所拥有爬虫任务的 多少,用户权重的计算方法如下:
,1 ,考虑任务大小(注;1^2为底数)
[0024]
[0025] 根据用户等级计算用户权重:
[0026] 用户权重=默认用户权重X用户等级
[0027] (2)更新用户权重
[0028] 每个已经有爬虫作业运行的用户权重更新公式:
[0029]
[0030] (3)初始缺额计算
[0031] 每个用户的初始资源缺额设置为0
[0032] (4)更新用户的最小共享量
[0033] 在每个资源池中,将其拥有的爬虫采集客户端按用户的权重分配给各个用户(由 步骤a)完成),分完之后将剩余的爬虫采集客户端按用户的权重和缺额分配给仍需爬虫采 集客户端的用户(由步骤b)),如果还有爬虫采集客户端资源剩余,则将运些客户端资源共 享给其他用户资源池,具体步骤如下所示:
[0034] 初始化:当前所有用户资源的最小共享量置零;
[00巧]重复W下几步,直到资源池剩余资源为零:
[0036] 计算每个用户的最小共享量
[0
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1