分布式爬虫任务分配方法及系统与流程

文档序号:13422132阅读:2409来源:国知局
分布式爬虫任务分配方法及系统与流程

本发明涉及数据处理领域,尤其涉及一种分布式爬虫任务分配方法及系统。



背景技术:

网络爬虫(又被称为网页蜘蛛,网络机器人,在foaf社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

网络爬虫实际是一种网络信息抓取的应用程序,现有的网络爬虫抓取数据量大,任务的分配一般为均分任务,导致数据搜索效率低。



技术实现要素:

本申请提供一种分布式爬虫任务分配方法。其解决现有技术的技术方案效率低的缺点。

一方面,提供一种分布式爬虫任务分配方法,所述方法包括如下步骤:

任务管理器获取该爬虫任务;

任务管理器获取与该任务管理器连接的设备的距离以及爬虫任务数量;

任务管理器依据该距离以及爬虫任务数量为该设备分配爬虫任务。

可选的,所述任务管理器依据该距离以及爬虫任务数量为该设备分配爬虫任务,具体包括:

将与任务管理器直接连接的设备确定为第一设备组,为第一设备组采用第一负载均衡的算法分配爬虫任务,将与任务管理服务器间接连接的设备确定为第二设备组,为第二设备组采用第二负载均衡的算法分配爬虫任务,第二负载均衡的算法的任务阈值小于第一负载均衡算法的任务阈值。

可选的,所述方法还包括:

检测设备与任务管理器之间的心跳消息,如设定时间内未接收到第一设备的第一心跳消息,将第一设备未完成的爬虫任务确定为待分配的爬虫任务。

第二方面,提供一种分布式爬虫任务分配系统,所述系统包括:任务管理器以及设备,所述任务管理器与设备连接;

任务管理器,用于获取该爬虫任务,获取与该任务管理器连接的设备的距离以及爬虫任务数量;依据该距离以及爬虫任务数量为该设备分配爬虫任务;

所述设备,用于执行分配的爬虫任务。

可选的,所述任务管理器,还用于将与任务管理器直接连接的设备确定为第一设备组,为第一设备组采用第一负载均衡的算法分配爬虫任务,将与任务管理服务器间接连接的设备确定为第二设备组,为第二设备组采用第二负载均衡的算法分配爬虫任务,第二负载均衡的算法的任务阈值小于第一负载均衡算法的任务阈值。

可选的,所述任务管理器,还用于检测设备与任务管理器之间的心跳消息,如设定时间内未接收到第一设备的第一心跳消息,将第一设备未完成的爬虫任务确定为待分配的爬虫任务。

第三方面,提供一种任务管理器,包括:处理器、无线收发器、存储器和总线,所述处理器、无线收发器、存储器通过总线连接,

所述无线收发器,用于获取该爬虫任务,获取与该任务管理器连接的设备的距离以及爬虫任务数量;

所述处理器,用于依据该距离以及爬虫任务数量为该设备分配爬虫任务。

可选的,所述处理器,用于将与任务管理器直接连接的设备确定为第一设备组,为第一设备组采用第一负载均衡的算法分配爬虫任务,将与任务管理服务器间接连接的设备确定为第二设备组,为第二设备组采用第二负载均衡的算法分配爬虫任务,第二负载均衡的算法的任务阈值小于第一负载均衡算法的任务阈值。

可选的,所述处理器,用于检测设备与任务管理器之间的心跳消息,如设定时间内未接收到第一设备的第一心跳消息,将第一设备未完成的爬虫任务确定为待分配的爬虫任务。

第四方面,提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行第一方面提供的方法。

本发明提供的技术方案通过将爬虫任务依据设备的距离以及爬虫任务数量来分配该爬虫任务,实现了任务分配合理,从而提高了效率的优点。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明第一较佳实施方式提供的一种分布式爬虫任务分配方法的流程图;

图2为本发明第二较佳实施方式提供的一种分布式爬虫任务分配系统的结构图。

图3为本发明第二较佳实施方式提供的一种任务管理器的硬件结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1是本发明第一较佳实施方式提出的一种分布式爬虫任务分配方法,该方法如图1所示,包括如下步骤:

步骤s101、任务管理器获取该爬虫任务。

步骤s102、任务管理器获取与该任务管理器连接的设备的距离以及爬虫任务数量。

步骤s103、任务管理器依据该距离以及爬虫任务数量为该设备分配爬虫任务。

本发明提供的技术方案通过将爬虫任务依据设备的距离以及爬虫任务数量来分配该爬虫任务,实现了任务分配合理,从而提高了效率的优点。

可选的,上述步骤s103的实现方法具体可以为:

将与任务管理器直接连接的设备确定为第一设备组,为第一设备组采用第一负载均衡的算法分配爬虫任务,将与任务管理服务器间接连接的设备确定为第二设备组,为第二设备组采用第二负载均衡的算法分配爬虫任务,第二负载均衡的算法的任务阈值小于第一负载均衡算法的任务阈值。

其考虑的是,对于直接连接的设备,即跳数只有1个,这种距离短,网络之间的延时少,并且不易与任务管理器出现通信故障,对于此类设备,确定为最核心的第一设备组,采用任务阈值较大的负载均衡算法来实现任务的分配,离的远的设备,由于其跳数较多,距离长,网络之间的延时短,易出现通信的故障,所以分配的任务数量应该少一些。

可选的,上述方法在步骤s103之后还可以包括:

检测设备与任务管理器之间的心跳消息,如设定时间内未接收到第一设备的第一心跳消息,将第一设备未完成的爬虫任务确定为待分配的爬虫任务。

请参考图2,图2是本发明第二较佳实施方式提出的一种分布式爬虫实现系统,该系统如图2所示,包括:任务管理器201以及设备202,所述任务管理器与设备连接;

任务管理器,用于获取该爬虫任务,获取与该任务管理器连接的设备的距离以及爬虫任务数量;依据该距离以及爬虫任务数量为该设备分配爬虫任务;

所述设备,用于执行分配的爬虫任务。

可选的,所述任务管理器,还用于将与任务管理器直接连接的设备确定为第一设备组,为第一设备组采用第一负载均衡的算法分配爬虫任务,将与任务管理服务器间接连接的设备确定为第二设备组,为第二设备组采用第二负载均衡的算法分配爬虫任务,第二负载均衡的算法的任务阈值小于第一负载均衡算法的任务阈值。

可选的,所述任务管理器,还用于检测设备与任务管理器之间的心跳消息,如设定时间内未接收到第一设备的第一心跳消息,将第一设备未完成的爬虫任务确定为待分配的爬虫任务。

参阅图3,图3为一种任务管理器30,包括:处理器301、无线收发器302、存储器303和总线304,无线收发器302用于与外部设备之间收发数据。处理器301的数量可以是一个或多个。本申请的一些实施例中,处理器301、存储器302和收发器303可通过总线304或其他方式连接。服务器30可以用于执行图1的步骤。关于本实施例涉及的术语的含义以及举例,可以参考图1对应的实施例。此处不再赘述。

无线收发器302,用于获取该爬虫任务,获取与该任务管理器连接的设备的距离以及爬虫任务数量。

其中,存储器303中存储程序代码。处理器901用于调用存储器903中存储的程序代码,用于执行以下操作:

处理器301,用于依据该距离以及爬虫任务数量为该设备分配爬虫任务。

需要说明的是,这里的处理器301可以是一个处理元件,也可以是多个处理元件的统称。例如,该处理元件可以是中央处理器(centralprocessingunit,cpu),也可以是特定集成电路(applicationspecificintegratedcircuit,asic),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digitalsingnalprocessor,dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,fpga)。

存储器303可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或应用程序运行装置运行所需要参数、数据等。且存储器303可以包括随机存储器(ram),也可以包括非易失性存储器(non-volatilememory),例如磁盘存储器,闪存(flash)等。

总线304可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

该终端还可以包括输入输出装置,连接于总线304,以通过总线与处理器301等其它部分连接。该输入输出装置可以为操作人员提供一输入界面,以便操作人员通过该输入界面选择布控项,还可以是其它接口,可通过该接口外接其它设备。

需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取器(英文:randomaccessmemory,简称:ram)、磁盘或光盘等。

以上对本发明实施例所提供的内容下载方法及相关设备、系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1