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

文档序号:9687549阅读:来源:国知局
[0154] 2)分布式处理;
[0155] 分布式调度器接收到爬虫采集客户端返回的数据后,立即将数据进入分布式消息 队列,分布式数据处理器实时的去消费消息队列里面的数据,W流式的方式处理数据。网页 数据的处理分为两种情况,一种是通用的数据处理方法,一种是根据用户配置的模板来处 理数据;通用方法利用基于特征模型的自学习文本数据挖掘技术进行数据的提取和分析, 基于用户模板的方法会根据模板定义的规则去提取数据;数据处理完成后,生成对应数据 的索引,更新对应的U化记录状态,并存储数据到化ase数据表里,同时将生成的外链插入到 化ase调度表里,等待调度分发、爬取和处理。
[0156] 本发明未详细阐述部分属于本领域公知技术。
[0157]本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领 域的技术人员可W对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替 代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
【主权项】
1. 一种基于志愿者计算的多租户专业云爬虫,包括用户管理客户端,所述用户管理客 户端是用户管理的门户,向用户提供WEB接口及REST API服务,用户通过管理门户,定义爬 虫任务,提交爬虫任务,设定爬虫参数,查看爬虫运行情况及获取爬取回来的数据,其特征 在于:还包括爬虫服务端,爬虫采集客户端,所述爬虫服务端实现爬虫任务的调度和爬取回 来的数据处理;所述爬虫采集客户端由连接在互联网上的各种相对空闲主机组成,采集互 联网站点数据,收集运行主机的网络带宽速率的信息,用于爬虫任务的调度管理;所述爬虫 服务端包括分布式调度和分布式处理,所述分布式调度实现爬虫任务的调度、爬虫采集客 户端资源的管理及接收爬虫采集客户端返回来的数据;所述分布式处理接收爬虫采集客户 端返回的数据,立即将数据进入分布式消息队列,实时的去消费消息队列里面的数据,以流 式的方式处理数据。2. 根据权利要求1所述的基于志愿者计算的多租户专业云爬虫,其特征在于:所述分布 式调度包括调度器、爬取任务信息汇报器、用户信息汇报器、爬虫节点负载信息汇报器及爬 虫集群负载信息收集器,爬虫节点负载信息汇报器收集爬虫采集客户端的负载信息,并将 负载信息定期发送给爬虫集群负载信息收集器,调度器在负载均衡的过程中通过爬虫集群 负载信息收集器获得所有爬虫采集客户端的负载信息,并根据用户信息汇报器和爬虫任务 信息汇报器做出负载均衡决策。3. 根据权利要求2所述的基于志愿者计算的多租户专业云爬虫,其特征在于:所述调度 器收集各种信息的主要步骤包括:51. 爬虫节点负载信息汇报器到爬虫集群负载信息收集器注册,爬虫节点负载信息汇 报器发送节点的IP和主机名到爬虫集群负载信息收集器,爬虫集群负载信息收集器对爬虫 节点的IP进行注册,创建该爬虫节点负载信息对象,该爬虫节点负载信息汇报器发送的负 载信息都将存在该对象中;52. 爬虫节点负载信息汇报器获得爬虫节点网络带宽的利用率,述爬虫节点负载信息 汇报器获得爬虫节点网络带宽的利用率的实现过程为: a) 计算最近一次间隔时间内平均网络带宽利用率,计算公式如下:b) 计算最近一次间隔时间内平均可提供网络带宽速率,计算公式如下: 平均可提供网络带宽速率=最大可提供网络带宽速率-平均已使用网络带宽速率; c) 估计爬虫节点执行任务期间可提供网络带宽速率,以此作为爬虫节点负载信息,为 爬虫节点负载信息汇报器启动时刻记为to,间隔时间记为t,t〇+t时刻记为。,依次类推,t〇+ η X t时刻记为tn,( ,tn)时间间隔内的平均网络带宽速率记为~(η 2 1),rn可以由步骤 (a)到步骤(c)得到,任务完成时刻记为^(^力)时间内的平均网络带宽速率记为1^,则匕 的预估公式如下:53. 爬虫节点负载信息汇报器将节点执行任务期间可提供网络带宽速率作为负载信息 发送到爬虫集群负载信息收集器,所有机器上的爬虫节点负载信息汇报器均需要定时将负 载信息报告给爬虫集群负载信息收集器,时间间隔根据系统规模来确定。4.根据权利要求3所述的基于志愿者计算的多租户专业云爬虫,其特征在于;所述调度 器在获得各个爬虫采集客户端负载信息情况后,构建一个两层结构的资源池对爬虫采集客 户端资源进行管理,调度器在调度任务时,以用户为单位来分配资源,具体算法如下所示: 当出现一个空闲爬虫采集客户端时,调度器会将此爬虫采集客户端分配给缺额最大的爬虫 用户,系统每隔500毫秒更新一次信息,包括:用户缺额、用户权重、最小共享量、公平共享 量; (1) 用户权重计算方法: a) 默认情况下,用户权重是基于用户等级的,但也可以基于用户所拥有爬虫任务的多 少,用户权重的计算方法如下:b) 根据用户等级计算用户权重: 用户权重=默认用户权重X用户等级 (2) 更新用户权重 每个已经有爬虫作业运行的用户权重更新公式:(3) 初始缺额计算 每个用户的初始资源缺额设置为〇 (4) 更新用户的最小共享量 在每个资源池中,将其拥有的爬虫采集客户端按用户的权重分配给各个用户(由步骤 a)完成),分完之后将剩余的爬虫采集客户端按用户的权重和缺额分配给仍需爬虫采集客 户端的用户(由步骤b)),如果还有爬虫采集客户端资源剩余,则将这些客户端资源共享给 其他用户资源池,具体步骤如下所示: 初始化:当前所有用户资源的最小共享量置零; 重复以下几步,直到资源池剩余资源为零: a) 计算每个用户的最小共享量 首先计算该用户可获得的共享值:根据当前资源池中的剩余资源数,调整该共享值: 获取资源数= min{min{剩余资源数,用户尚需资源数与正运行资源数之和-最小共享 量},最小资源保证量} 资源剩余量=资源剩余量-获得资源数 如果此轮循环中,资源剩余值未变,即没有资源分给任何作业,则将剩余的资源共享给 资源池中所有用户,即,执行b) c)并结束算法; b) 将资源池中的用户按权重和缺额排序; c) 按顺序依次计算每个用户的最小资源共享量 首先计算该作业可获得的共享值:根据当前资源池中的剩余资源数,调整该共享值: 获取资源数= min{min{剩余资源数,用户尚需资源数与正运行资源数之和-最小共享 量},最小资源保证量} 资源剩余量=资源剩余量-用户获得资源数 需要注意的是,当执行完b)、c)后,资源剩余量可能仍大于0,这时候会将剩余的资源剩 余量共享给其他用户资源池; (5) 更新公平共享量 具体步骤如下所示: 初始化:当前所有用户的公平共享量置零;资源剩余量为系统中空闲的爬虫采集客户 端资源; a) 遍历系统活动用户集合中的所有用户,计算每个用户的公平共享量: 如果作业的最小共享量大于公平共享量,则将最小共享量作为公平共享量赋值给用 户,同时将此用户从活动用户集合中删除; b) 将剩下的爬虫采集客户端资源按权重比例赋给活动用户集合中剩余的用户:将公平共享量赋值给用户; (6) 更新缺额 用户资源缺额=用户资源缺额+(公平共享量-活动用户数)X两次信息更新的时间间 隔; (7) 资源分配 当系统中产生一个空闲爬虫采集客户端资源时,将此资源分配给缺额最大的用户。
【专利摘要】本发明涉及网络信息采集领域,提供了一种基于志愿者计算的多租户专业云爬虫,包括用户管理客户端,定义爬虫任务,提交爬虫任务,设定爬虫参数,查看爬虫运行情况及获取爬取回来的数据,还包括爬虫服务端,实现爬虫任务的调度和爬取回来的数据处理;爬虫采集客户端,采集互联网站点数据,收集运行主机的网络带宽速率的信息;爬虫服务端包括分布式调度和分布式处理,分布式调度,实现爬虫任务的调度、爬虫客户端资源的管理及接收爬虫客户端返回来的数据;分布式处理,分布式数据处理器实时的去消费消息队列里面的数据,以流式的方式处理数据。本发明提高了用户闲置资源的利用率,节约了用户开发爬虫系统的成本,实现了资源的公平共享。
【IPC分类】G06F17/30
【公开号】CN105447088
【申请号】CN201510751538
【发明人】徐精忠, 刘凯枫
【申请人】杭州掘数科技有限公司
【公开日】2016年3月30日
【申请日】2015年11月6日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1