一种基于map/reduce的实时响应方法及系统的制作方法

文档序号:9787512阅读:268来源:国知局
一种基于map/reduce的实时响应方法及系统的制作方法
【技术领域】
[0001 ]本发明涉及数据处理技术,尤其涉及一种基于map/reduce的实时响应方法及系统。
【背景技术】
[0002]并行计算模型map/reduce出现前,在java编程领域,利用多台计算机并行处理数据,让这些计算机之间进行协作非常困难,导致无法在海量数据之间建立关联。
[0003]map/reduce模型提供了对海量数据的处理方法,它的原理是把一个计算机局域网内的多台只具有普通计算能力的计算机统一管理起来,使得它们能够并行处理海量数据,并在处理数据的过程之中,进行分工协作完成一些业务逻辑的计算,以此实现在海量数据之间建立关联或者进行统计分析。
[0004]map/reduce程序主要分成3个模块:主控模块,mapper模块和reduce模块。其中,主控模块负责初始化,mapper模块和reduce模块负责进行业务逻辑计算和处理。
[0005]—旦map/reduce运算启动,服务请求模块便将提交到hadoop平台的服务请求消息发送给主控模块,主控模块将服务请求消息分发到mapper模块进行处理,mapper模块处理完毕后通知主控模块,并退出该次map/reduce运算,主控模块可以再次启动下一个map/reduce运算或者进行其他处理。
[000?] map/reduce模型可以调动群集内所有的计算机进行并行计算和协作处理数据,它的强大是显而易见的。但是,在一般应用场景中,map/reduce也有它的不足,例如,map/reduce每次启动运行的时间都需要30到50秒,如果每次启动后,map/reduce都只执行很少的时间,map/reduce的效率就很低。因此,现有的map/reduce程序在用于需要快速响应、处理大量小数据任务的工作时,效率较低。

【发明内容】

[0007]有鉴于此,本发明的目的是提出一种基于map/reduce的实时响应方法及系统,以解决现有的map/reduce程序在用于需要快速响应、处理大量小数据任务的工作时效率较低的问题,提高数据处理效率。
[0008]为实现上述目的,本发明采用如下技术方案:
[0009 ] 一方面,本发明实施例提供了一种基于map/reduce的实时响应方法,包括:
[00?0]主控模块初始化并启动map/reduce运算后,所述主控模块接收服务请求模块发送的服务请求消息;
[0011 ]所述主控模块将所述服务请求消息分配给空闲mapper模块;
[0012I所述空闲mapper模块接收所述服务请求消息,判断所述服务请求消息是否为终止服务的消息,若否,则处理服务请求,并将处理结果作为服务响应消息返回给主控模块后,等待响应下一个服务请求消息。
[0013]进一步地,还包括:[OOM]若判断所述服务请求消息为终止服务的消息,则所述空闲mapper模块终止等待响应服务请求消息的操作。
[0015]进一步地,在主控模块初始化并启动map/reduce运算之前,还包括:
[0016]所述主控模块为每个mapper模块进行编号;
[0017]相应地,所述主控模块将所述服务请求消息分配给空闲mapper模块,包括:
[0018]所述主控模块获取所有空闲mapper模块的编号,并选择其中一个空闲mapper模块的编号;
[0019]所述主控模块将所述服务请求消息发送给所选择的空闲mapper模块的编号对应的空闲mapper模块。
[°02°]进一步地,所述主控模块为每个mapper模块进行编号包括:
[0021 ]所述主控模块获取预先创建的一个多行且每行有一个数字的文本文件;?0022] 所述主控模块向每个mapper模块发送所述文本文件的一行文本,以使每个mapper模块得到不同的文本化的数字,并将所述数字作为mapper模块的编号。
[0023]进一步地,在所述空闲mapper模块响应服务请求时,还包括:
[0024]等待时间设置模块将hadoop系统接收mapper模块进度报告的等待时间设为O,以防止所述空闲mapper模块被hadoop系统强行终止。
[0025]另一方面,本发明实施例提供了一种基于map/reduce的实时响应系统,包括服务请求模块、主控模块和mapper模块;
[0026]所述服务请求模块包括服务请求消息发送单元,用于向所述主控模块发送服务请求消息;以及服务响应消息接收单元,用于接收所述主控模块转发的服务响应消息;
[0027]所述主控模块包括map/reduce启动单元,用于初始化并启动map/reduce运算;月艮务请求消息接收单元,用于接收所述服务请求模块发送的服务请求消息;服务请求消息分配单元,用于将所述服务请求消息分配给空闲mapper模块;以及服务响应消息转发单元,用于接收空闲mapper模块返回的服务响应消息,并将所述服务响应消息转发给所述服务请求模块;
[0028]所述mapper模块包括服务请求消息第二接收单元,用于接收主控模块分配的服务请求消息;服务请求消息判断单元,用于判断所述服务请求消息是否为终止服务的消息;月艮务响应消息返回单元,用于若判断所述服务请求消息不为终止服务的消息,则处理服务请求,并将处理结果作为服务响应消息返回给主控模块;以及服务请求消息等待单元,用于在将所述服务响应消息返回给主控模块之后,等待响应下一个服务请求消息。
[0029]进一步地,所述mapper模块还包括:
[0030]响应终止单元,用于若判断所述服务请求消息为终止服务的消息,则终止所述空闲mapper模块等待响应服务请求消息的操作。
[0031]进一步地,所述主控模块还包括:
[0032]mapper模块编号单元,用于在主控模块初始化并启动map/reduce运算之前,为每个mapper模块进行编号;
[0033]相应地,所述服务请求消息分配单元具体用于:
[0034]获取所有空闲mapper模块的编号,并选择其中一个空闲mapper模块的编号;
[0035]将所述服务请求消息发送给所选择的空闲mapper模块的编号对应的空闲mapper模块。
[0036]进一步地,所述mapper模块编号单元具体用于:
[0037]获取预先创建的一个多行且每行有一个数字的文本文件;
[0038]向每个mapper模块发送所述文本文件的一行文本,以使每个mapper模块得到不同的文本化的数字,并将所述数字作为mapper模块的编号。
[0039]进一步地,所述系统还包括:
[0040]等待时间设置模块,用于在所述空闲mapper模块处理服务请求之前,将hadoop系统接收mapper模块进度报告的等待时间设为O,以防止所述空闲mapper模块被hadoop系统强行终止。
[0041 ]本发明的有益效果是:本发明提供的一种基于map/reduce的实时响应方法及系统,使用map/reduce程序处理大量小数据任务的工作时,map/reduce运算一次启动后,mapper模块便会一直等待响应服务请求消息,当mapper模块接收到服务请求消息,判断服务请求消息不为终止服务的消息时,对服务请求进行处理,并将处理结果作为服务响应消息返回给主控制模块,之后,mapper模块继续等待响应服务请求消息,一旦接收到服务请求消息,便立即响应该服务请求,而不必再次开启map/reduce运算,因而减少了响应时间,提高了数据处理的效率。
【附图说明】
[0042]下面将通过参照附图详细
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1