本发明涉及数据处理领域,具体而言,涉及一种计算系统的作业任务处理方法、装置、存储介质和处理器。
背景技术:
目前,大型金融企业如银行或保险公司,由于行业的特殊性,需要搭建企业自有的邮件服务器,并对邮件内容进行解析,以防止数据泄露或者对敏感内容过滤,同时为了提高数据利用效率,会对保存的文件进行数据挖掘。为了解析和进一步挖掘这些邮件文件,各种建模分析和高级应用系统不断被提出。这些建模分析和高级应用系统的实现需要海量的数据作为支持。
现有的数据采集和处理系统多采用传统的关系型数据库存储数据,例如,sqlserver和oracle,这两种数据库都是运用单线程或多线程技术对数据进行处理,对数据处理服务器的性能要求比较高,虽然能够满足日常的管理工作,但是难以满足建模分析和高级应用系统对数据规模和分辨率的需求,此外,若采用实时数据库系统方案,虽然能够满足数据采集分辨率的要求,但是随着数据量的增加,服务器负载率会比较高,处理速度过慢,效率不高,而高性能的计算机,实现成本也相对较高,从而会导致对海量的作业任务进行处理的效率低的问题。
针对上述对海量的作业任务进行处理的效率低的问题,目前尚未提出有效的解决方案。
技术实现要素:
本发明实施例提供了一种计算系统的作业任务处理方法、装置、存储介质和处理器,以至少解决对海量的作业任务进行处理的效率低的技术问题。
根据本发明实施例的一个方面,提供了一种计算系统的作业任务处理方法,该计算系统为基于分布式计算模型构建的系统,包括:客户端、主服务器和任务服务器,其中,主服务器获取多个需要并行处理的作业任务;主服务器将多个需要并行处理的作业任务进行分解,得到多个任务块,其中,任务块的类型包括:map任务和reduce任务;主服务器将每个任务块分配到对应的任务服务器上;主服务器接收每个任务服务器执行任务块而返回的结果。
可选地,map任务用于处理输入数据而得到一组键值对,reduce任务用于将具有相同键的键值对进行数据合并。
可选地,map任务将预定时间内的输入数据进行预处理,生成一组键值对,预处理包括如下至少之一:筛选数据、解析数据串,其中,在作业任务为邮件作业的情况下,键值对包括:键和键值,键用于表征邮件id,键值用于表征邮件数据,邮件数据包括如下至少之一:邮件敏感数据、邮件主题和邮箱。
可选地,reduce任务用于将多个map任务完成后,将具有相同键的map任务进行合并,其中,在作业任务为邮件作业的情况下,reduce任务用于将具有相同邮件id的邮件数据进行合并处理。
可选地,在任意一个任务服务器检测到出现故障的情况下,主服务器将该任务服务器上执行的任务块重新分配到优先级最高的其他任务服务器上,其中,基于任务服务器的空闲资源量来确定优先级。
根据本发明实施例的另一方面,还提供了一种用于处理作业任务的计算系统,该计算系统为基于分布式计算模型构建的系统,包括:多个客户端、主服务器和任务服务器,其中,多个客户端,用于生成并发送作业任务;主服务器,与每个客户端通信,用于获取多个需要并行处理的作业任务,将多个需要并行处理的作业任务进行分解,得到多个任务块,其中,任务块的类型包括:map任务和reduce任务;多个任务服务器,每个任务服务器接收主服务器分配的任务块,并执行任务块而产生的结果返回给主服务器。
可选地,map任务用于处理输入数据而得到一组键值对,reduce任务用于将具有相同键的键值对进行数据合并。
可选地,map任务将预定时间内的输入数据进行预处理,生成一组键值对,预处理包括如下至少之一:筛选数据、解析数据串,其中,在作业任务为邮件作业的情况下,键值对包括:键和键值,键用于表征邮件id,键值用于表征邮件数据,邮件数据包括如下至少之一:邮件敏感数据、邮件主题和邮箱。
可选地,reduce任务用于将多个map任务完成后,将具有相同键的map任务进行合并,其中,在作业任务为邮件作业的情况下,reduce任务用于将具有相同邮件id的邮件数据进行合并处理。
可选地,在任意一个任务服务器检测到出现故障的情况下,主服务器将该任务服务器上执行的任务块重新分配到优先级最高的其他任务服务器上,其中,基于任务服务器的空闲资源量来确定优先级。
根据本发明实施例的另一方面,还提供了一种计算系统的作业任务处理装置,该计算系统为基于分布式计算模型构建的系统,包括:客户端、主服务器和任务服务器,其中,该装置包括:获取单元,用于主服务器获取多个需要并行处理的作业任务;分解单元,用于主服务器将多个需要并行处理的作业任务进行分解,得到多个任务块,其中,任务块的类型包括:map任务和reduce任务;分配单元,用于主服务器将每个任务块分配到对应的任务服务器上;接收单元,用于主服务器接收每个任务服务器执行任务块而返回的结果。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行本发明实施例的计算系统的作业任务处理方法。
根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序被该处理器运行时执行本发明实施例的计算系统的作业任务处理方法。
在本发明实施例中,采用主服务器将多个需要并行处理的作业任务进行分解,得到多个任务块,其中,任务块的类型包括:map任务和reduce任务;主服务器将每个任务块分配到对应的任务服务器上;主服务器接收每个任务服务器执行任务块而返回的结果。也就是说,本申请通过计算机系统对海量数据进行并行处理,利用主服务器对多个需要并行处理的作业任务进行分解,将数据处理压力分担到各个数据处理节点,从而实现了在保持计算机系统的高性能的同时,提高了对海量数据处理的效率,进而解决了对海量的作业任务进行处理的效率低的技术问题,达到了提高对海量的作业任务进行处理的效率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种用于处理作业任务的计算系统的示意图;
图2是根据本发明实施例的一种计算系统的作业任务处理方法的流程图;
图3是根据本发明实施例的一种利用hadoop处理海量数据的方法的流程图;
图4是根据本发明实施例的一种海量数据处理平台的示意图;
图5是根据本发明实施例的一种计算系统的作业任务处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
分布式计算平台(hadoop):是一个开源框架,其允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据,目的是从单一的服务器到上千台机器的扩展,每一个台机都可以提供本地计算和存储。
分布式文件系统(hadoopdistributedfilesystem,简称为hdfs):指文件系统管理的物理存储资源通过计算机网络和节点与本地节点连接,或若干不同的逻辑磁盘分区或卷标组合在一起而形成的完成的有层次的文件系统,可以用于将大文件分解固定大小的小片,存储在多个计算机上。
分布式编程环境(mapreduce):是一个用于大规模数据处理的分布式计算编程模型,用户在使用时,需要定义map函数和reduce函数,其中map函数用来处理原始数据(初始键值对),以生成一批中间的键值对,reduce函数将所有这些中间的有着相同键的值合并起来。
实施例1
根据本发明实施例,提供了一种用于处理作业任务的计算系统。
图1是根据本发明实施例的一种用于处理作业任务的计算系统的示意图。如图1所示,该用于处理作业任务的计算系统10可以包括:客户端11、主服务器12和任务服务器13。
客户端11,用于生成并发送作业任务。
在该实施例中,可以设置多个客户端11,多个客户端11可以生成用户的并行处理作业任务,并将这些并行处理作业任务发送给主服务器12,由主服务器12对这些并行处理作业任务进行处理。
主服务器12,与每个客户端11通信,用于获取多个需要并行处理的作业任务,将多个需要并行处理的作业任务进行分解,得到多个任务块,其中,任务块的类型包括:map任务和reduce任务。
在该实施例中,主服务器12可以与每个客户端11都进行通信,在客户端11生成了多个需要并行处理的作业任务并将其进行发送之后,由主服务器12接收这些作业任务,并自动对这些作业任务进行分解,得到多个map任务的任务块和多个reduce任务的任务块,然后将分解后的多个任务块分配给多个任务服务器13,由任务服务器13来执行对应的任务块。
任务服务器13,每个任务服务器13接收主服务器12分配的任务块,并执行任务块而产生的结果返回给主服务器12。
在该实施例中,可以设置多个任务服务器13,每个任务服务器13都可以接收由主服务器12分配的map任务块或者reduce任务块,每个任务服务器13在接收到任务块之后,都可以对接收到的任务块进行相应任务的执行,并在执行任务完成后,生成一个结果返回给主服务器12。
作为一种可选的实施方式,map任务用于处理输入数据而得到一组键值对,reduce任务用于将具有相同键的键值对进行数据合并。
在该实施例中,map任务可以将主服务器11接收到的作业任务的数据进行处理,从而得到键值对,该键值对可以表示为<键,键值>(也可以表示为<key,value>),在map任务完成之后,reduce任务可以将具有相同键的键值对进行数据合并,形成系统期望的结果数据。
作为一种可选的实施方式,map任务将预定时间内的输入数据进行预处理,生成一组键值对,预处理包括如下至少之一:筛选数据、解析数据串,其中,在作业任务为邮件作业的情况下,键值对包括:键和键值,键用于表征邮件id,键值用于表征邮件数据,邮件数据包括如下至少之一:邮件敏感数据、邮件主题和邮箱。
在该实施例中,map任务可以将一段时间内的历史数据作为自己的输入数据,然后经过数据筛选、解析数据串等预处理过程之后,生成一组键值对(也可以称为结果数据对):<键,键值>,在作业任务为邮件作业的情况下,该键值对表示的意义可以为<邮件id,邮件数据>,其中的邮件数据可以包括邮件敏感数据、邮件主题或者邮箱等。
作为一种可选的实施方式,reduce任务用于将多个map任务完成后,将具有相同键的map任务进行合并,其中,在作业任务为邮件作业的情况下,reduce任务用于将具有相同邮件id的邮件数据进行合并处理。
在该实施例中,在多个map任务都完成之后,系统会生成若干个reduce任务,reduce任务可以将具有相同id的<键,键值>数据对进行合并,以形成期望的结果数据,该结果数据可以用于表示用户的需求数据等期望结果值,进而将map任务生成的中间文件汇总到最后的输出文件中,从而可以完成一次作业任务的执行。
可选地,该实施例中的作业可以用于表示每一次的数据处理,一次作业任务可以用于表示一次对大量文件数据解析及数据挖掘的执行过程,其中文件数据可以为邮件文件数据。
作为一种可选的实施方式,在任意一个任务服务器13检测到出现故障的情况下,主服务器12将该任务服务器13上执行的任务块重新分配到优先级最高的其他任务服务器13上,其中,基于任务服务器13的空闲资源量来确定优先级。
在该实施例中,若多个任务服务器中的其中一个任务服务器检测到出现了故障,此时主服务器可以将该任务服务器需要执行的任务块重新分配到其他任务服务器上,对于任务服务器的选择,则可以基于任务服务器的空闲资源量来确定剩下的任务服务器的优先级,然后主服务器将出现故障的任务服务器的任务块分配到优先级最高的其他任务服务器上,以对任务块进行重新执行,避免了由于任务服务器出现故障导致其任务块无法被执行的问题。
可选地,该实施例中的任务服务器出现故障,可以包括任务服务器受到了来自外部的入侵攻击等。
该实施例的用于处理作业任务的计算系统,通过对海量数据进行并行处理,利用主服务器对多个需要并行处理的作业任务进行分解,将数据处理压力分担到各个数据处理节点,从而实现了在保持计算机系统的高性能的同时,提高了对海量数据处理的效率,进而解决了对海量的作业任务进行处理的效率低的技术问题,达到了提高对海量的作业任务进行处理的效率的技术效果。
实施例2
根据本发明实施例,提供了一种计算系统的作业任务处理方法的实施例,需要说明的是,该实施例的计算系统的作业任务处理方法可以由本发明实施例1的用于处理作业任务的计算系统执行,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的一种计算系统的作业任务处理方法的流程图。如图2所示,该方法可以包括如下步骤:
步骤s202,主服务器获取多个需要并行处理的作业任务。
在本发明上述步骤s202提供的技术方案中,计算系统可以为基于分布式计算模型构建的系统,该计算系统可以包括客户端、主服务器和任务服务器,并可以通过主服务器来获取多个需要并行处理的作业任务。
可选地,该实施例中的多个需要并行处理的作业任务可以通过多个客户端生成,这些客户端可以与主服务器之间进行通信,然后由多个客户端将多个需要并行处理的作业任务发送至主服务器中,由主服务器对这些并行处理作业任务进行处理。
可选地,该实施例中的作业可以用于表示每一次的数据处理,作业任务可以用于表示对大量文件数据解析及数据挖掘的执行过程,其中文件数据可以为邮件文件数据。
步骤s204,主服务器将多个需要并行处理的作业任务进行分解,得到多个任务块,其中,任务块的类型包括:map任务和reduce任务。
在本发明上述步骤s204提供的技术方案中,主服务器可以在获取到多个需要并行处理的作业任务之后,自动对这些作业任务进行分解,得到多个map任务的任务块和多个reduce任务的任务块。
步骤s206,主服务器将每个任务块分配到对应的任务服务器上。
在本发明上述步骤s206提供的技术方案中,主服务器在得到多个任务块之后,可以将得到的多个任务块分配到对应的任务服务器上,在任务服务器接收到主服务器分配的多个任务块之后,由对应的任务服务器来执行这些任务块。
可选地,该实施例中的任务服务器可以设置为多个,每个任务服务器都可以接收由主服务器分配的map任务块或者reduce任务块,且每个任务服务器在接收到任务块之后,都可以对接收到的任务块进行相应任务的执行。
步骤s208,主服务器接收每个任务服务器执行任务块而返回的结果。
在本发明上述步骤s208提供的技术方案中,每个任务服务器在执行完任务块的相应任务之后,都可以获取到一个执行结果,并将这些结果返回给主服务器,由主服务器对接收到的结果进行响应。
通过本申请上述步骤s202至步骤s208,主服务器获取多个需要并行处理的作业任务;主服务器将多个需要并行处理的作业任务进行分解,得到多个任务块,其中,任务块的类型包括:map任务和reduce任务;主服务器将每个任务块分配到对应的任务服务器上;主服务器接收每个任务服务器执行任务块而返回的结果。也就是说,该实施例通过计算机系统对海量数据进行并行处理,利用主服务器对多个需要并行处理的作业任务进行分解,将数据处理压力分担到各个数据处理节点,从而实现了在保持计算机系统的高性能的同时,提高了对海量数据处理的效率,进而解决了对海量的作业任务进行处理的效率低的技术问题,达到了提高对海量的作业任务进行处理的效率的技术效果。
下面对该实施例的上述方法进行进一步介绍。
作为一种可选的实施方式,map任务用于处理输入数据而得到一组键值对,reduce任务用于将具有相同键的键值对进行数据合并。
在该实施例中,map任务可以将主服务器接收到的作业任务的数据进行处理,从而得到键值对,该键值对可以表示为<键,键值>(也可以表示为<key,value>),在map任务完成之后,reduce任务可以将具有相同键的键值对进行数据合并,形成系统期望的结果数据。
作为一种可选的实施方式,map任务将预定时间内的输入数据进行预处理,生成一组键值对,预处理包括如下至少之一:筛选数据、解析数据串,其中,在作业任务为邮件作业的情况下,键值对包括:键和键值,键用于表征邮件id,键值用于表征邮件数据,邮件数据包括如下至少之一:邮件敏感数据、邮件主题和邮箱。
在该实施例中,map任务可以将一段时间内的历史数据作为自己的输入数据,然后经过数据筛选、解析数据串等预处理过程之后,生成一组键值对(也可以称为结果数据对):<键,键值>,在作业任务为邮件作业的情况下,该键值对表示的意义可以为<邮件id,邮件数据>,其中的邮件数据可以包括邮件敏感数据、邮件主题或者邮箱等。
作为一种可选的实施方式,reduce任务用于将多个map任务完成后,将具有相同键的map任务进行合并,其中,在作业任务为邮件作业的情况下,reduce任务用于将具有相同邮件id的邮件数据进行合并处理。
在该实施例中,在多个map任务都完成之后,系统会生成若干个reduce任务,reduce任务可以将具有相同id的<键,键值>数据对进行合并,以形成期望的结果数据,该结果数据可以用于表示用户的需求数据等期望结果值,进而将map任务生成的中间文件汇总到最后的输出文件中,从而可以完成一次作业任务的执行。
可选地,该实施例中的作业可以用于表示每一次的数据处理,一次作业任务可以用于表示一次对大量文件数据解析及数据挖掘的执行过程,其中文件数据可以为邮件文件数据。
作为一种可选的实施方式,在任意一个任务服务器检测到出现故障的情况下,主服务器将该任务服务器上执行的任务块重新分配到优先级最高的其他任务服务器上,其中,基于任务服务器的空闲资源量来确定优先级。
在该实施例中,若多个任务服务器中的其中一个任务服务器检测到出现了故障,此时主服务器可以将该任务服务器需要执行的任务块重新分配到其他任务服务器上,对于任务服务器的选择,则可以基于任务服务器的空闲资源量来确定剩下的任务服务器的优先级,然后主服务器将出现故障的任务服务器的任务块分配到优先级最高的其他任务服务器上,以对任务块进行重新执行,避免了由于任务服务器出现故障导致其任务块无法被执行的问题。
可选地,该实施例中的任务服务器出现故障,可以包括任务服务器受到了来自外部的入侵攻击等。
在相关技术中,数据采集和处理系统多采用传统的关系型数据库存储数据,例如,sqlserver,oracle,这两种数据库都是运用单线程或多线程技术对数据进行处理,对数据处理服务器的性能要求比较高,虽然该相关技术中的数据采集和处理系统能够满足日常的管理工作,却难以满足建模分析和高级应用系统对数据规模和分辨率的需求,若采用实时数据库系统方案,虽然能够满足数据采集分辨率的要求,但是随着数据量的增加,服务器负载率会比较高,处理速度过慢,效率不高,并且高性能的计算机,实现成本也相对较高。
而本申请中的计算系统的作业任务处理方法,通过将云计算和mapreduce模型应用于作业任务文件的海量数据的处理上,利用计算机集群,对海量数据进行并行处理,将数据处理压力分担到各个数据处理节点,可以解决上述相关技术中无法同时保证系统性能和处理任务效率的问题,此外,本申请中的计算系统的作业任务处理方法还具有很好的扩展性和容错性,很好地解决了上述相关技术中对海量数据处理方面的不足。
实施例3
下面通过具体的例子对本发明的计算系统的作业任务处理方法进行进一步介绍。
在一种相关技术中,面对企业邮件服务器运行中产生的海量数据,传统数据采集系统往往将其存储于数据服务器。数据服务器数据往往以文件或数据库形式进行保存,应用更多地为关系型数据库。由于数据库内实时数据时间间隔短,随着时间的增长,数据库的大小将非常庞大,数据库性能将大大降低,因此往往需要定期对数据进行备份至光盘等存储介质操作,并删除部分实时数据。
上述相关技术中的传统的数据处理功能由计算服务器完成,往往采用的是单线程或者多线程的处理方式,由于数据量大,流程复杂,仅依靠单台轻量级服务器进行数据处理是远远不够的,为了减轻数据处理压力,只能减少数据处理的数量、流程或增加计算的周期。且传统关系型数据库限制了海量数据的存储,数据存储的效率和性能不高;传统单线程或多线程的数据处理技术限制了海量数据处理,而各种研究项目也受制于传统数据存储和处理方法的限制,仅仅利用了海量数据的一少部分,大量的数据并未得到应用。
而在本发明实施例中,采用基于mapreduce模型的海量数据处理技术,利用mapreduce强大的开源功能实现hadoop搭建的平台,在数据存储上能够对海量数据进行分布式存储,在数据处理上采用mapreduce并行计算方法,扩展性、容错性和大规模并行处理都具有优势,可以很好的解决上述相关技术中的传统数据存储和处理方法的不足。
在该实施例中,hadoop主要由hdfs和mapreduce模型构成。其中,hdfs处于hadoop的最底层,是hadoop的分布式文件系统,hadoop集群中所有存储节点上的文件都存储在hdfs中。一个hdfs集群由一个名称节点(namenode)服务器和多个数据节点(datanode)服务器组成;mapreduce处于hadoop的上层,负责对数据进行处理。该实施例中的hadoop可以让用户在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的高性能对数据进行存储和运算。
图3是根据本发明实施例的一种利用hadoop处理海量数据的方法的流程图。如图3所示,该方法可以包括如下步骤:
s301,获取海量待处理数据;
s302,将海量待处理数据存储至分布式文件系统;
s303,对海量待处理数据进行数据分片;
s304,利用map任务对数据进行处理,生成一组键值对;
s305,利用reduce任务可以将具有相同id的<键,键值>数据对进行数据合并;
s306,将合并后的数据进行输出。
在该实施例中,首先可以将海量待处理数据存储至hdfs中,由服务器将海量待处理数据进行数据分片,得到含有map任务和reduce任务的不同的任务块,然后利用mapreduce模型对这些任务块进行处理,其中,mapreduce模型中的map任务可以将一段时间内的历史数据作为自己的输入数据,然后经过数据筛选、解析数据串等预处理过程之后,生成一组键值对<键,键值>(也可以表示为<key,value>);在多个map任务都完成之后,mapreduce模型会生成若干个reduce任务,reduce任务可以将具有相同id的<键,键值>数据对进行数据合并,并将合并后的数据进行输出,这样就可以完成一次利用hadoop对海量数据进行处理的过程。
在上述实施例中,利用hadoop对海量数据进行处理主要分为两部分,分别为海量数据存储和海量数据处理。其中,数据存储主要负责存储海量数据并拆分成若干数据分片;数据处理主要通过map任务操作和reduce任务操作,对海量数据进行处理。
在上述实施例中,hdfs使得海量的数据在物理上可以进行分布式的存储,在逻辑上具有一致的、易于访问的文件系统操作接口,从而对于海量数据的处理,是利用mapreduce模型的并行计算方法,将用户自定义的map和reduce任务分散到集群中的各个节点计算机上进行执行。
在上述实施例中,数据存储部分实现将海量的数据存储于hdfs,将数据文件的目录存储于一个名称节点服务器上,而具体的文件数据会被拆分成若干任务块(也可以称为数据分片),冗余的存储在不同数据节点服务器上。虽然具体的数据存储在不同服务器上,但是在逻辑上,对于数据的访问有统一的文件操作接口,通过hadoop提供的一系列访问函数接口(api),进而可以实现对物理上存储在不同节点的数据进行分析处理。
在上述实施例中,数据处理部分利用mapreduce模型实现对数据进行并行处理,对数据的处理也即,将海量数据拆分为若干个包括有map任务和reduce任务的任务块,并将这些任务块分配到不同的计算机上进行计算,因此,该实施例的利用hadoop处理海量数据的方法能够高效快速的处理海量的数据,且数据输出可以供人机界面及其他高级应用利用。
在上述实施例中,mapreduce模型能够利用大规模廉价服务器集群实现对海量数据的并行处理,具有良好的扩展性和可靠性,其运行环境由客户端、主节点和工作节点组成,客户端将用户的并行处理作业提交给主节点,主节点自动将作业分解为map任务和reduce任务,并将任务调度到工作节点;工作节点负责任务的执行,开发人员向mapreduce模型提交的程序中仅仅需要定义map函数和reduce函数,map函数操作对输入数据进行处理,产生一组中间的键值对集,reduce函数操作对具有相同键的键值对进行数据合并。
图4是根据本发明实施例的一种海量数据处理平台的示意图。如图4所示,该海量数据处理平台40可以包括:应用层41、数据访问接口层42、数据存储与处理层43和终端数据层44。
在该实施例中,应用层41用于对处理后的数据进行应用,包括基本的数据监控平台数据的应用,报表统计数据的应用等,比如,敏感词的统计,客户需求挖掘显示等。
在该实施例中,数据访问接口层42用于为应用层41提供明确的易于访问的数据访问接口,使得应用层41可以屏蔽底层数据的处理过程,专注于数据的高级应用。
在该实施例中,数据存储与处理层43用于基于hadoop进行搭建平台,其中,可以将数据存储至hdfs,并利用mapreduce模型对这些数据进行处理。
在该实施例中,终端数据层44用于运行过程中对数据进行采集,并将收集到的数据交由数据存储与处理层43,也即,终端数据层44可以用于提供数据(可以为邮件数据文件)存储服务器。
该实施例中的海量数据处理平台,经过对其功能和可靠性进行测试,结果表明,当数据量较小时(低于2gb),hadoop数据平台处理效率并不比传统数据平台处理效率高,但是随着数据量的增大,hadoop数据处理平台的优势越来越明显,从而具有很好的扩展性和容错性,很好地解决了传统的数据处理方法中对海量数据处理方面的不足。
实施例4
本发明实施例还提供了一种计算系统的作业任务处理装置。需要说明的是,该实施例的计算系统的作业任务处理装置可以用于执行本发明实施例的计算系统的作业任务处理方法。
图5是根据本发明实施例的一种计算系统的作业任务处理装置的示意图。如图5所示,该计算系统的作业任务处理装置50可以包括:获取单元51、分解单元52、分配单元53和接收单元54。
获取单元51,用于使主服务器获取多个需要并行处理的作业任务。
分解单元52,用于使主服务器将多个需要并行处理的作业任务进行分解,得到多个任务块,其中,任务块的类型包括:map任务和reduce任务。
分配单元53,用于使主服务器将每个任务块分配到对应的任务服务器上。
接收单元54,用于使主服务器接收每个任务服务器执行任务块而返回的结果。
该实施例的计算系统的作业任务处理装置,通过计算机系统对海量数据进行并行处理,利用主服务器对多个需要并行处理的作业任务进行分解,将数据处理压力分担到各个数据处理节点,从而实现了在保持计算机系统的高性能的同时,提高了对海量数据处理的效率,进而解决了对海量的作业任务进行处理的效率低的技术问题,达到了提高对海量的作业任务进行处理的效率的技术效果。
实施例5
根据本发明实施例,还提供了一种计算机可读存储介质,该计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行本发明实施例2中的计算系统的作业任务处理方法。
实施例6
根据本发明实施例,还提供了一种处理器,该处理器用于运行程序,其中,在程序被处理器运行时执行本发明实施例2中的计算系统的作业任务处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
1.一种计算系统的作业任务处理方法,其特征在于,所述计算系统为基于分布式计算模型构建的系统,包括:客户端、主服务器和任务服务器,其中,
所述主服务器获取多个需要并行处理的作业任务;
所述主服务器将所述多个需要并行处理的作业任务进行分解,得到多个任务块,其中,所述任务块的类型包括:map任务和reduce任务;
所述主服务器将每个所述任务块分配到对应的所述任务服务器上;
所述主服务器接收每个所述任务服务器执行所述任务块而返回的结果。
2.根据权利要求1所述的方法,其特征在于,所述map任务用于处理输入数据而得到一组键值对,所述reduce任务用于将具有相同键的所述键值对进行数据合并。
3.根据权利要求2所述的方法,其特征在于,所述map任务将预定时间内的所述输入数据进行预处理,生成所述一组键值对,所述预处理包括如下至少之一:筛选数据、解析数据串,其中,在所述作业任务为邮件作业的情况下,所述键值对包括:键和键值,所述键用于表征邮件id,所述键值用于表征邮件数据,所述邮件数据包括如下至少之一:邮件敏感数据、邮件主题和邮箱。
4.根据权利要求3所述的方法,其特征在于,所述reduce任务用于将多个所述map任务完成后,将具有相同键的所述map任务进行合并,其中,在所述作业任务为所述邮件作业的情况下,所述reduce任务用于将具有相同邮件id的邮件数据进行合并处理。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,在任意一个所述任务服务器检测到出现故障的情况下,所述主服务器将所述任务服务器上执行的所述任务块重新分配到优先级最高的其他任务服务器上,其中,基于所述任务服务器的空闲资源量来确定所述优先级。
6.一种用于处理作业任务的计算系统,其特征在于,所述计算系统为基于分布式计算模型构建的系统,包括:多个客户端、主服务器和任务服务器,其中,
多个客户端,用于生成并发送作业任务;
所述主服务器,与每个所述客户端通信,用于获取多个需要并行处理的作业任务,将所述多个需要并行处理的作业任务进行分解,得到多个任务块,其中,所述任务块的类型包括:map任务和reduce任务;
多个任务服务器,每个任务服务器接收所述主服务器分配的所述任务块,并将执行所述任务块而产生的结果返回给所述主服务器。
7.根据权利要求6所述的计算系统,其特征在于,所述map任务用于处理输入数据而得到一组键值对,所述reduce任务用于将具有相同键的所述键值对进行数据合并。
8.根据权利要求7所述的计算系统,其特征在于,所述map任务将预定时间内的所述输入数据进行预处理,生成所述一组键值对,所述预处理包括如下至少之一:筛选数据、解析数据串,其中,在所述作业任务为邮件作业的情况下,所述键值对包括:键和键值,所述键用于表征邮件id,所述键值用于表征邮件数据,所述邮件数据包括如下至少之一:邮件敏感数据、邮件主题和邮箱。
9.根据权利要求8所述的计算系统,其特征在于,所述reduce任务用于将多个所述map任务完成后,将具有相同键的所述map任务进行合并,其中,在所述作业任务为所述邮件作业的情况下,所述reduce任务用于将具有相同邮件id的邮件数据进行合并处理。
10.根据权利要求6至9中任意一项所述的计算系统,其特征在于,在任意一个所述任务服务器检测到出现故障的情况下,所述主服务器将所述任务服务器上执行的所述任务块重新分配到优先级最高的其他任务服务器上,其中,基于所述任务服务器的空闲资源量来确定所述优先级。
11.一种计算系统的作业任务处理装置,其特征在于,所述计算系统为基于分布式计算模型构建的系统,包括:客户端、主服务器和任务服务器,其中,所述装置包括:
获取单元,用于使所述主服务器获取多个需要并行处理的作业任务;
分解单元,用于使所述主服务器将所述多个需要并行处理的作业任务进行分解,得到多个任务块,其中,所述任务块的类型包括:map任务和reduce任务;
分配单元,用于使所述主服务器将每个任务块分配到对应的任务服务器上;
接收单元,用于使所述主服务器接收每个所述任务服务器执行任务块而返回的结果。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至5中任意一项所述的方法。
13.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序被所述处理器运行时执行权利要求1至5中任意一项所述的方法。
技术总结