一种基于Hadoop的数据批处理系统和方法

文档序号:6517774阅读:248来源:国知局
一种基于Hadoop的数据批处理系统和方法
【专利摘要】本发明提供一种基于Hadoop的数据批处理系统和方法,该系统包括:应用接口模块,包括Push接口和Pop接口;任务调度模块,用于调度Push接口接收的任务;任务执行模块,用于处理所述任务;和结果收集模块,用于解析并推送所述任务的处理结果。通过本发明,开发人员只需简单的调用两个简单的接口就可以解决处理大数据的需求,使得开发人员的着力点放在数据处理前后的流程控制和其他的开发需求,而不需要掌握Hadoop,大大减少了其工作量和开发时间。
【专利说明】一种基于Hadoop的数据批处理系统和方法
【技术领域】
[0001]本发明属于数据处理领域,具体涉及一种基于Hadoop的数据批处理系统和方法。【背景技术】
[0002]当今是互联网信息的爆炸的时代,大数据的处理已无处不在,怎么样更好更快的处理大数据已成了所有互联网企业的主要难题。
[0003]目前,Hadoop是大数据处理中应用最广泛的技术之一,已经成为流行的开源数据处理框架技术,并且成为大数据的代名词。Hadoop是使用MapReduce和分布式文件系统(HDFS)实现的。MapReduce将应用切分为多个小任务块去执行,为了保证数据处理的可靠性,HDFS会为数据块创建多个副本,并放置在群的计算节点中,而MapReduce就在数据副本存放的地方进行处理。
[0004]现有的数据批处理系统是单机运行,不能达到数据处理的实时性和高效性。若新开发分布式的数据批处理系统需要消耗大量的时间和精力,从项目开发的角度考虑使用Hadoop 技术。
[0005]而Hadoop的大数据处理优势只有在数据量达到一定程度的时候才会体现出来,通常来讲,直接使用Hadoop必需要做两件事:源数据收集模块和结果数据解析模块的设计和开发。虽然Hadoop的大数据处理能力非常强大,然而,要让一个着力于应用层面的开发人员成功并正确的运用Hadoop,还是有不小的难度,需要花费大量的时间和经历,尤其是在了解Hadoop的搭建和配置启动,以及HDFS的结构和Iibhdfs等等。这都会大大影响Hadoop的使用和项目的开发周期。

【发明内容】

[0006]为了克服上述现有技术的不足,本发明提供一种基于Hadoop的数据批处理系统和方法。
[0007]为了实现上述发明目的,本发明采取如下技术方案:
[0008]一方面,本发明提供一种基于Hadoop的数据批处理系统,其特征在于,该系统包括:
[0009]应用接口模块,包括Push接口和Pop接口;
[0010]任务调度模块,用于调度Push接口接收的任务;
[0011]任务执行模块,用于处理所述任务;和
[0012]结果收集模块,用于解析并推送所述任务的处理结果。
[0013]优选地,所述Push接口用于接收任务,所述Pop接口用于获取该系统对所述任务的执行结果。
[0014]优选地,所述调度Push接口接收的任务包括:获取所述任务并将其整理打包,写入缓存文件,并根据文件大小调用任务执行模块,生成结果文件。
[0015]优选地,所述任务执行模块包括Hadoop模块和本地执行模块;所述Hadoop模块包括Hadoop的调用执行程序及脚本;所述本地执行模块用于本地执行Done函数,返回结果数据。
[0016]优选地,所述根据文件大小调用任务执行模块包括:若缓存文件内数据条数大于2000或文件大小大于1G,则调用任务执行模块中的Hadoop模块;否则,调用任务执行模块中的本地执行模块。
[0017]另一方面,本发明提供一种基于Hadoop的数据批处理方法,其特征在于:所述方法包括以下步骤:
[0018]A.Push接口接收任务,并递交任务调度模块;
[0019]B.任务调度模块将所述任务整理打包,写入缓存文件,获取缓存文件大小,并将其递至任务执行模块;
[0020]C.任务执行模块处理所述缓存文件,并生成结果文件;
[0021]D.结果收集模块解析结果文件并推送至pop接口。
[0022]优选地,所述步骤C包括:若缓存文件内数据条数大于2000或文件大小大于1G,则调用任务执行模块中的Hadoop模块进行所述处理,并生成结果文件;否则,调用任务执行模块中的本地执行模块进行所述处理,并生成结果文件。
[0023]所述步骤C包括:若任务调度模块检测Hadoop模块不能正常使用,则调用任务执行模块中的本地执行模块进行所述处理,并生成结果文件。
[0024]优选地,所述本地执行模块通过Done线程读取当前缓存文件,并调用Done函数得出结果数据。
[0025]与现有技术相比,本发明的有益效果在于:
[0026]通过本发明,开发人员只需简单的调用两个简单的接口就可以解决处理大数据的需求,使得开发人员的着力点放在数据处理前后的流程控制和其他的开发需求,而不需要掌握Hadoop,大大减少了其工作量和开发时间。
【专利附图】

【附图说明】
[0027]图1是本发明批处理系统的结构图;
[0028]图2是本发明批处理系统的使用流程图;
[0029]图3是本发明批处理方法的具体流程图。
【具体实施方式】
[0030]下面结合附图对本发明作进一步详细说明。
[0031]最简单理想的大数据处理的方式是:提供Push和Pop两个接口,开发人员只需要调用Push接口把源数据提供给数据批处理系统,调用Pop接口取回数据结果,如图2所示。
[0032]基于上述分析,对本系统的架构(如图1)做详细说明:
[0033]I)应用接口层:本模块是本系统的对外交互的唯一途径,它提供Push和Pop两个接口。使用者调用Push接口向本系统推送任务,调用Pop接口从本系统获取结果。
[0034]2)任务调度模块:本模块负责把应用层Push进来的任务整理打包,写入缓存文件,并根据系统状态调用任务执行模块,生成结果文件。
[0035]3)任务执行模块:本模块负责调用Hadoop内核或本地执行模块,返回结果数据。[0036]4)结果收集模块:本模块负责把任务调度模块生成的结果文件解析并推送至结果输出缓冲区,供使用者Pop出任务结果。
[0037]5)Hadoop模块:本模块封装了 Hadoop具体的调用执行程序及脚本。
[0038]6)本地执行模块:本模块只有在Hadoop不能正常服务的时候有效,负责本地执行Done函数,返回结果数据。
[0039]该系统的具体使用方法如下(如图3所示):
[0040]1.任务调度模块从源数据输入队列取源数据,goto2。
[0041]2.任务调度模块检测Hadoop是否正常,如正常,goto3,否则goto4。
[0042]3.任务调度模块把当前数据写入缓存文件,并查看当前缓存文件是否满足提交条件(如时间大于5分钟或文件大小大于1G),如是goto5,否则gotol。
[0043]4.本地执行模块启动本地队列Done线程,并把当前数据写入本地输入队列,本地队列Done线程负责从本地输入队列获取源数据,执行Done函数后写入结果数据输出队列。同时并检查是否存在未提交的缓存文件,如存在,goto8。
[0044]5.任务执行模块查看当前缓存文件是否满足提交到Hadoop执行的条件(如缓存文件内任务条数>2000,才需要放到hadoop上执行,因为Hadoop启动和停止一个job需要启动大量进程比较耗时)如是goto6,否则goto8。
[0045]6.Hadoop模块提交当前缓存文件到Hadoop执行,并取回结果文件,goto7。
[0046]7.结果收集模块读取结果文件,写入结果输出队列,等待用户调用应用接口层的Pop接口获取结果数据。gotol。
[0047]8.本地执行模块的本地文件Done线程读取当前缓存文件调用Done函数得出结果数据写入结果输出队列,gotol。
[0048]最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的【具体实施方式】进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
【权利要求】
1.一种基于Hadoop的数据批处理系统,其特征在于,该系统包括: 应用接口模块,包括Push接口和Pop接口 ; 任务调度模块,用于调度Push接口接收的任务; 任务执行模块,用于处理所述任务; 结果收集模块,用于解析并推送所述任务的处理结果。
2.如权利要求1所述的系统,其特征在于:所述Push接口用于接收任务,所述Pop接口用于获取该系统对所述任务的执行结果。
3.如权利要求1所述的系统,其特征在于:所述调度push接口接收的任务包括:获取所述任务并将其整理打包,写入缓存文件,并根据文件大小调用任务执行模块,生成结果文件。
4.如权利要求1所述的系统,其特征在于:所述任务执行模块包括Hadoop模块和本地执行模块;所述Hadoop模块包括Hadoop的调用执行程序及脚本;所述本地执行模块用于本地执行Done函数,返回结果数据。
5.如权利要求3所述的系统,其特征在于:所述根据文件大小调用任务执行模块包括:若文件内任务条数大于2000或文件大小大于1G,则调用任务执行模块中的Hadoop模块;否则,调用任务执行模块中的本地执行模块。
6.一种基于Hadoop的数据批处理方法,其特征在于:所述方法包括以下步骤: A.Push接口接收任务,并递交任务调度模块; B.任务调度模块将所述任务整理打包,写入缓存文件,获取缓存文件大小,并将其递至任务执行模块; C.任务执行模块处理所述缓存文件,并生成结果文件; D.结果收集模块解析结果文件并推送至Pop接口。
7.如权利要求6所述的方法,其特征在于,所述步骤C包括:若缓存文件内任务条数大于2000或缓存文件大小大于1G,则调用任务执行模块中的Hadoop模块进行所述处理,并生成结果文件;否则,调用任务执行模块中的本地执行模块进行所述处理,并生成结果文件。
8.如权利要求6所述的方法,其特征在于,所述步骤C包括:若任务调度模块检测Hadoop模块不能正常使用,则调用任务执行模块中的本地执行模块进行所述处理,并生成结果文件。
9.如权利要求7或8所述的方法,其特征在于:所述本地执行模块通过Done线程读取当前缓存文件,并调用Done函数得出结果数据。
【文档编号】G06F9/46GK103559036SQ201310538259
【公开日】2014年2月5日 申请日期:2013年11月4日 优先权日:2013年11月4日
【发明者】王欢龙 申请人:北京中搜网络技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1