CN105760222A - 基于MapReduce的平均值计算方法及装置 - Google Patents
基于MapReduce的平均值计算方法及装置 Download PDFInfo
- Publication number
- CN105760222A CN105760222A CN201410795479.2A CN201410795479A CN105760222A CN 105760222 A CN105760222 A CN 105760222A CN 201410795479 A CN201410795479 A CN 201410795479A CN 105760222 A CN105760222 A CN 105760222A
- Authority
- CN
- China
- Prior art keywords
- output valve
- big data
- key
- task
- group key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例公开了一种基于MapReduce的平均值计算方法及装置,该方法包括:将待处理大数据按照设定规则进行分组,并为每组的大数据添加一个组Key;将分组后的大数据分配给预先设置的至少一个Map任务;调用每个Map任务将分配到的大数据以行为单位进行处理,得到携带组Key的输出值,所述输出值包括对应行的大数据的处理值和数量;按照组Key将每个Map任务处理后的输出值分配给Reduce任务,组Key与Reduce任务一一对应;调用每个Reduce任务根据分配到的输出值计算对应组Key的大数据的平均值。该方案避免了严重失真的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于MapReduce的平均值计算方法及装置。
背景技术
大数据(BigData)通常用来形容一个企业创造的大量非结构化数据和半结构化数据,企业会对大数据进行分析处理,并根据分析处理后的结果进行决策制定、项目推进等等,在对大数据进行分析处理时,常常会用到大数据的平均值,因此,如何准确地计算大数据的平均值非常重要。
目前,一般采用递进式计算方法计算大数据的平均值,具体为:通常会设置大单位和小单位,首先计算小单位的平均值,然后根据小单位的平均值和大单位与小单位的换算关系计算大单位的平均值。假设大单位为天,小单位为小时,首先计算以小时为单位的平均值,然后再根据以小时单位的平均值和天与小时的换算关系计算以天单位的平均值。
上述方法中,由于根据小单位的平均值和大单位与小单位的换算关系计算大单位的平均值,不能真实反应大单位的平均值,从而导致得到的平均值严重失真。
发明内容
本发明实施例提供一种基于MapReduce的平均值计算,用以解决现有技术中存在的得到的平均值严重失真的问题。
根据本申请实施例,提供一种基于MapReduce的平均值计算方法,包括:
将待处理大数据按照设定规则进行分组,并为每组的大数据添加一个组标识Key;
将分组后的大数据分配给预先设置的至少一个映射Map任务;
调用每个Map任务将分配到的大数据以行为单位进行处理,得到携带组Key的输出值,所述输出值包括对应行的大数据的处理值和数量;
按照组Key将每个Map任务处理后的输出值分配给化简Reduce任务,组Key与Reduce任务一一对应;
调用每个Reduce任务根据分配到的输出值计算对应组Key的大数据的平均值。
具体的,调用每个Map任务将分配到的大数据以行为单位进行处理,得到携带组Key的输出值,具体包括:
针对每个Map任务,执行:
调用当前Map任务将分配到的大数据以行为单位进行处理,得到每行大数据的处理值Avg和数量;
将得到的每行大数据的Avg和数量作为输出值;
在每个输出值中添加对应的组Key。
具体的,按照组Key将每个Map任务处理后的输出值分配给Reduce任务,具体包括:
确定每个组Key对应的Reduce任务;
将每个Map任务得到的输出值进行可序列化处理;
将可序列化处理后的输出值按照携带的组Key分配给对应的Reduce任务。
具体的,调用每个Reduce任务根据分配到的输出值计算对应组Key的大数据的平均值,具体包括:
针对每个Reduce任务,执行:
调用当前Reduce任务计算分配到的每个输出值中的处理值与数量的乘积;
将得到的所有乘积求和后,除以分配到的输出值中的数量之和,得到所述当前Reduce任务对应组Key的大数据的平均值。
可选的,还包括:
针对每个Map任务,执行:
统计出当前Map任务处理后的输出值中包括的组Key;
分别将携带相同组Key的输出值中的处理值与数量相乘,并求和;
将每个组Key的和值除以对应组Key的输出值中的数量之和,得到对应组Key的处理值;
将每个组Key的处理值和数量作为对应组Key的输出值。
根据本发明实施例,还提供一种基于MapReduce的平均值计算装置,包括:
分组单元,用于将待处理大数据按照设定规则进行分组,并为每组的大数据添加一个组标识Key;
第一分配单元,用于将分组后的大数据分配给预先设置的至少一个映射Map任务;
第一调用单元,用于调用每个Map任务将分配到的大数据以行为单位进行处理,得到携带组Key的输出值,所述输出值包括对应行的大数据的处理值和数量;
第二分配单元,用于按照组Key将每个Map任务处理后的输出值分配给化简Reduce任务,组Key与Reduce任务一一对应;
第二调用单元,用于调用每个Reduce任务根据分配到的输出值计算对应组Key的大数据的平均值。
具体的,所述第一调用单元,具体用于:
针对每个Map任务,执行:
调用当前Map任务将分配到的大数据以行为单位进行处理,得到每行大数据的处理值Avg和数量;
将得到的每行大数据的Avg和数量作为输出值;
在每个输出值中添加对应的组Key。
具体的,所述第二分配单元,具体用于:
确定每个组Key对应的Reduce任务;
将每个Map任务得到的输出值进行可序列化处理;
将可序列化处理后的输出值按照携带的组Key分配给对应的Reduce任务。
具体的,所述第二调用单元,具体用于:
针对每个Reduce任务,执行:
调用当前Reduce任务计算分配到的每个输出值中的处理值与数量的乘积;
将得到的所有乘积求和后,除以分配到的输出值中的数量之和,得到所述当前Reduce任务对应组Key的大数据的平均值。
可选的,所述第一调用单元,还用于:
针对每个Map任务,执行:
统计出当前Map任务处理后的输出值中包括的组Key;
分别将携带相同组Key的输出值中的处理值与数量相乘,并求和;
将每个组Key的和值除以对应组Key的输出值中的数量之和,得到对应组Key的处理值;
将每个组Key的处理值和数量作为对应组Key的输出值。
本发明有益效果如下:
本发明实施例提供一种基于MapReduce的平均值计算方法及装置,通过将待处理大数据按照设定规则进行分组,并为每组的大数据添加一个组Key;将分组后的大数据分配给预先设置的至少一个Map任务;调用每个Map任务将分配到的大数据以行为单位进行处理,得到携带组Key的输出值,所述输出值包括对应行的大数据的处理值和数量;按照组Key将每个Map任务处理后的输出值分配给Reduce任务,组Key与Reduce任务一一对应;调用每个Reduce任务根据分配到的输出值计算对应组Key的大数据的平均值。该方案中,通过MapReduce来计算待处理大数据的平均值,由于待处理大数据的每行大数据都参与运算,因此相对于现有技术中的递进计算方式,得到的平均值更加精确,避免了严重失真的问题;并且,由于调用多个Map任务和Reduce任务参与计算,因此,计算效率也非常高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中的一种基于MapReduce的平均值计算方法的流程示意图;
图2为本发明实施例中的第二种基于MapReduce的平均值计算方法的流程示意图;
图3为本发明实施例中的一种基于MapReduce的平均值计算装置的结构示意图。
具体实施方式
针对现有技术中存在的得到的平均值严重失真的问题,本发明实施例提供基于MapReduce的平均值计算方法,该方法的流程如图1所示,执行步骤如下:
S11:将待处理大数据按照设定规则进行分组,并为每组的大数据添加一个组标识(Key)。
由于待处理大数据的数据量非常大,为了降低处理难度,在获取待处理大数据后,可以将待处理大数据按照设定规则进行分组,并可以为每组分配一个组Key,将组Key添加对应分组的大数据中,组Key相同的表明是同一个分组的大数据,组Key可以采用数字、字母、符号等形式,设定规则可以根据实际需要进行设定。
下面以一个实例进行说明,假设,待处理大数据为全国移动用户上网费用,设定规则是统计每个省的移动用户上网费用平均值,为每个省分配一个组Key,分配结果为北京市的组Key为01、上海市的组Key为02、天津市的组Key为03、重庆市的组Key为04等等,然后可以将待处理大数据以省为单位进行分组,再将01添加到北京市的大数据中、将02添加到上海市的大数据中、将03添加天津市的大数据中、将04添加到重庆市的大数据中等等,从而完成待处理大数据的分组。
S12:将分组后的大数据分配给预先设置的至少一个映射(Map)任务。
大数据需要特殊的技术,包括大规模并行处理数据库、数据挖掘电网、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统,从而保证在有效容忍时间内完成处理工作。在本发明实施例中,采用基于Hadoop架构的MapReduce来计算待处理大数据的平均值,Hadoop架构是由多个节点组成的集群架构,MapReduce包括Map阶段和化简(Reduce)阶段,可以分配一部分节点用来执行Map任务,一个节点上可以执行一个或多个Map任务;可以分配剩余节点来执行Reduce任务,一个节点上可以执行一个或多个Reduce任务。
将待处理大数据进行分组后,分配给预先设置的Map任务,可以按照大数据中携带的组Key进行分配,也可以随机进行分配。
S13:调用每个Map任务将分配到的大数据以行为单位进行处理,得到携带组Key的输出值,输出值包括对应行的大数据的处理值和数量。
在每个Map任务获取分配到的大数据后,可以调用Map任务以行为单位处理分配到的大数据,Map任务每处理完一行大数据都会得到携带组Key的输出值,可以采用AvgCoutPair表示该输出值,AvgCoutPair包括该行大数据的处理值和数量,可以采用Avg表示处理值、Count表示数量。
S14:按照组Key将每个Map任务处理后的输出值分配给Reduce任务,组Key与Reduce任务一一对应。
可以将组Key与Reduce任务一一对应设置,即一个Reduce任务唯一计算一个组Key的大数据的平均值,这样就可以按照组Key将每个Map任务处理后的输出值分配给Reduce任务,假设,Reduce1对应的组Key为01,那么就可以将携带01的输出值分配给Reduce1,Reduce2对应的组Key为02,那么就可以将携带02的输出值分配给Reduce2,Reduce3对应的组Key为03,那么就可以将携带03的输出值分配给Reduce3,……。
S15:调用每个Reduce任务根据分配到的输出值计算对应组Key的大数据的平均值。
每个Reduce任务根据分配到的输出值进行计算后,就可以得到对应组Key的大数据的平均值,继续沿用上例,Reduce1根据分配到的输出值计算组Key为01的大数据的平均值,Reduce2根据分配到的输出值计算组Key为02的大数据的平均值,Reduce3根据分配到的输出值计算组Key为03的大数据的平均值,……。
该方案中,通过MapReduce来计算待处理大数据的平均值,由于待处理大数据的每行大数据都参与运算,因此相对于现有技术中的递进计算方式,得到的平均值更加精确,避免了严重失真的问题;并且,由于调用多个Map任务和Reduce任务参与计算,因此,计算效率也非常高。
具体的,上述S13中的调用每个Map任务将分配到的大数据以行为单位进行处理,得到携带组Key的输出值,具体包括:
针对每个Map任务,执行:
调用当前Map任务将分配到的大数据以行为单位进行处理,得到每行大数据的Avg和数量;
将得到的每行大数据的Avg和数量作为输出值;
在每个输出值中添加对应的组Key。
调用Map任务处理分配到的大数据时,是以行为单位进行处理的,Map任务处理完一行大数据后,就可以得到该行大数据的Avg和数量,该行大数据的Avg和数量作为该行大数据的输出值,然后可以在该输出值中添加对应的组Key,用组Key来表示该输出值对应的分组。
具体可以采用如下代码实现:
publicvoidmap(Objectkey,Textvalue,Contextcontext)throwsIOException,InterruptedException{
1)AvgCountPair的Avg变量等于value值经过加工后的数值;
2)AvgCountPair的Count变量等于1;
Map的输出context.write(组Key,AvgCountPair)}。
具体的,上述S14中的按照组Key将每个Map任务处理后的输出值分配给Reduce任务,具体包括:
确定每个组Key对应的Reduce任务;
将每个Map任务得到的输出值进行可序列化处理;
将可序列化处理后的输出值按照携带的组Key分配给对应的Reduce任务。
基于Hadoop架构的MapReduce的机制要求,在将Map任务处理后的输出值传输给Reduce任务时,需要将输出值转化为可在网上传递的形式,具体可以采用可序列化处理方法来实现,例如,将其转化为二进制流;由于组Key与Reduce任务一一对应,因此可以将可序列化处理后的传输至按照携带的组Key分配给对应的Reduce任务即可。
具体的,上述S15中的调用每个Reduce任务根据分配到的输出值计算对应组Key的大数据的平均值,具体包括:
针对每个Reduce任务,执行:
调用当前Reduce任务计算分配到的每个输出值中的处理值与数量的乘积;
将得到的所有乘积求和后,除以分配到的输出值中的数量之和,得到当前Reduce任务对应组Key的大数据的平均值。
假设,当前Reduce任务分配到的输出值为(Avgi,Counti),i表示第i个输出值,那么,可以首先计算每个输出值中的处理值与数量的乘积Avgi*Counti,然后将得到的乘积求和∑(Avgi*Counti),再除以输出值中的数量之和∑Counti,就可以得到当前Reduce任务对应组Key的大数据的平均值AVG的计算公式:
AVG=∑(Avgi*Counti)/∑Counti(1)。
具体可以构造如下功能函数实现:
publicvoidreduce(WritablegroupbyKey,Iterable<AvgCountPair>values,Contextcontext)throwsIOException,InterruptedException{
1)循环遍历Iterable<AvgCountPair>values,根据公式∑(Avgi*Counti)/∑Counti计算∑(Avgi*Counti)和∑Counti;
2)根据∑(Avgi*Counti)/∑Counti,计算出最终的平均值AVG;
Reduce的输出context.write(groupbyKey,AVG)}。
上述代码实现的功能如下:
1)WritablegroupbyKey即每一个reduce功能函数的输入数据都是基于一个groupbyKey,在本发明实施例中,WritablegroupbyKey代表当前这个reduce功能函数对应的组Key。
2)Iterable<AvgCountPair>values即当前这个reduce功能函数分组对应的数据列表,因为每个分组中会有多条数据,在reduce功能函数中对这些数据进行汇聚计算,最后输出这个分组对应的汇聚计算结果。
3)Contextcontext是MapReduce框架自带参数,表示计算上下文,用于输出reduce的计算结果。
4)context.write(groupbyKey,AVG)即reduce功能函数的输出,使用计算上下文context进行计算结果的输出,计算结果是当前这个分组对应的汇聚计算结果,即上述AVG。
可选的,还包括:
针对每个Map任务,执行:
统计出当前Map任务处理后的输出值中包括的组Key;
分别将携带相同组Key的输出值中的处理值与数量相乘,并求和;
将每个组Key的和值除以对应组Key的输出值中的数量之和,得到对应组Key的处理值;
将每个组Key的处理值和数量作为对应组Key的输出值。
分配给每个Map任务的大数据可能包括多个组Key,为了便于提高后续Reduce任务的计算效率,可以将每个Map任务处理后的输出值中相同组Key的输出值进行合并处理,首先统计出当前Map任务处理后的输出值中包括的组Key,针对每个组Key,采用公式(1)计算该组Key对应的处理值,然后除以该组Key的输出值中的数量之和∑Counti,从而得到该组Key的输出值。这样需要传输到Reduce阶段的数据量就会大大减少,提高了整个MapReduce的性能。
具体可以构造如下功能函数实现:
Jobjob=newJob(conf);
job.setMapperClass(mapper);
job.setCombinerClass(reducer);
job.setReducerClass(reducer);
job.waitForComplete()。
上述功能函数实现的功能如下:
1)根据集群架构配置信息conf定义JOB,并指定之前写好的mapper功能函数、reducer功能函数,同时采用combiner功能函数进行map计算部分的优化,combiner功能函数可以直接使用reducer功能函数来指定。
2)job.waitForComplete()为启动提交这个JOB,等待它运行完。
当然,还可以根据每个组Key的大数据的平均值计算待处理大数据的平均值,具体可以采用公式(1)进行计算。
本发明实施例提供第二种基于MapReduce的平均值计算方法,如图2所示,在本实施例中Hadoop架构共有5个节点,其中,三个节点执行三个Map任务,分别即为Map1、2、3,另外两个节点执行Reduce任务,分别即为ReduceA、B,该方法包括以下五个阶段:
第一阶段为分组阶段,将待处理大数据按照设定规则进行分组,并为每组的大数据添加一个组Key,将分组后的大数据分配给预先设置的至少一个Map任务。
由于共有两个Reduce任务,因此可以将待处理大数据按照设定规则分为两组,每个组分配一个组Key,假设分配的组Key为A、B,那么,就可以在第一组大数据中添加A,在第二组大数据中添加B,然后随机分配给三个Map任务。
第二阶段为Map阶段,针对每个Map任务,执行:
调用当前Map任务将分配到的大数据以行为单位进行处理,得到每行大数据的Avg和数量;
将得到的每行大数据的Avg和数量作为输出值;
在每个输出值中添加对应的组Key。
调用Map任务处理分配到的大数据时,是以行为单位进行处理的,Map任务处理完一行大数据后,就可以得到该行大数据的Avg和数量,该行大数据的Avg和数量作为该行大数据的输出值,在图2中该输出值表示为(avg,count),然后可以在该输出值中添加对应的组Key,用组Key来表示该输出值对应的分组。
第三阶段为分配阶段,确定每个组Key对应的Reduce任务;
将每个Map任务得到的输出值进行可序列化处理;
将可序列化处理后的输出值按照携带的组Key分配给对应的Reduce任务。
基于Hadoop架构的MapReduce的机制要求,在将Map任务处理后的输出值传输给Reduce任务时,需要将输出值转化为可在网上传递的形式,具体可以采用可序列化处理方法来实现,例如,将其转化为二进制流;由于组Key与Reduce任务一一对应,因此可以将可序列化处理后的传输至按照携带的组Key分配给对应的Reduce任务即可。
假设,Reduce1对应的组Key为A,那么就可以将携带A的输出值分配给ReduceA,ReduceB对应的组Key为B,那么就可以将携带B的输出值分配给ReduceB。
第四阶段为Reduce阶段,针对每个Reduce任务,执行:
调用当前Reduce任务计算分配到的每个输出值中的处理值与数量的乘积;
将得到的所有乘积求和后,除以分配到的输出值中的数量之和,得到当前Reduce任务对应组Key的大数据的平均值。
其中,ReduceA和ReduceB可以采用公式(1)来计算平均值。
第五阶段为输出阶段,输出每个Reduce任务计算的平均值。
该实施例中,通过MapReduce来计算待处理大数据的平均值,由于待处理大数据的每行大数据都参与运算,因此相对于现有技术中的递进计算方式,得到的平均值更加精确,避免了严重失真的问题;并且,由于调用多个Map任务和Reduce任务参与计算,因此,计算效率也非常高。
基于同一发明构思,本发明实施例提供一种基于MapReduce的平均值计算装置,该装置的结构如图3所示,包括:
分组单元31,用于将待处理大数据按照设定规则进行分组,并为每组的大数据添加一个组Key。
第一分配单元32,用于将分组后的大数据分配给预先设置的至少一个Map任务。
第一调用单元33,用于调用每个Map任务将分配到的大数据以行为单位进行处理,得到携带组Key的输出值,输出值包括对应行的大数据的处理值和数量。
第二分配单元34,用于按照组Key将每个Map任务处理后的输出值分配给Reduce任务,组Key与Reduce任务一一对应。
第二调用单元35,用于调用每个Reduce任务根据分配到的输出值计算对应组Key的大数据的平均值。
该方案中,通过MapReduce来计算待处理大数据的平均值,由于待处理大数据的每行大数据都参与运算,因此相对于现有技术中的递进计算方式,得到的平均值更加精确,避免了严重失真的问题;并且,由于调用多个Map任务和Reduce任务参与计算,因此,计算效率也非常高。
具体的,上述第一调用单元33,具体用于:
针对每个Map任务,执行:
调用当前Map任务将分配到的大数据以行为单位进行处理,得到每行大数据的处理值Avg和数量;
将得到的每行大数据的Avg和数量作为输出值;
在每个输出值中添加对应的组Key。
具体的,上述第二分配单元34,具体用于:
确定每个组Key对应的Reduce任务;
将每个Map任务得到的输出值进行可序列化处理;
将可序列化处理后的输出值按照携带的组Key分配给对应的Reduce任务。
具体的,上述第二调用单元35,具体用于:
针对每个Reduce任务,执行:
调用当前Reduce任务计算分配到的每个输出值中的处理值与数量的乘积;
将得到的所有乘积求和后,除以分配到的输出值中的数量之和,得到当前Reduce任务对应组Key的大数据的平均值。
可选的,上述第一调用单元33,还用于:
针对每个Map任务,执行:
统计出当前Map任务处理后的输出值中包括的组Key;
分别将携带相同组Key的输出值中的处理值与数量相乘,并求和;
将每个组Key的和值除以对应组Key的输出值中的数量之和,得到对应组Key的处理值;
将每个组Key的处理值和数量作为对应组Key的输出值。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于MapReduce的平均值计算方法,其特征在于,包括:
将待处理大数据按照设定规则进行分组,并为每组的大数据添加一个组标识Key;
将分组后的大数据分配给预先设置的至少一个映射Map任务;
调用每个Map任务将分配到的大数据以行为单位进行处理,得到携带组Key的输出值,所述输出值包括对应行的大数据的处理值和数量;
按照组Key将每个Map任务处理后的输出值分配给化简Reduce任务,组Key与Reduce任务一一对应;
调用每个Reduce任务根据分配到的输出值计算对应组Key的大数据的平均值。
2.如权利要求1所述的方法,其特征在于,调用每个Map任务将分配到的大数据以行为单位进行处理,得到携带组Key的输出值,具体包括:
针对每个Map任务,执行:
调用当前Map任务将分配到的大数据以行为单位进行处理,得到每行大数据的处理值Avg和数量;
将得到的每行大数据的Avg和数量作为输出值;
在每个输出值中添加对应的组Key。
3.如权利要求1所述的方法,其特征在于,按照组Key将每个Map任务处理后的输出值分配给Reduce任务,具体包括:
确定每个组Key对应的Reduce任务;
将每个Map任务得到的输出值进行可序列化处理;
将可序列化处理后的输出值按照携带的组Key分配给对应的Reduce任务。
4.如权利要求1所述的方法,其特征在于,调用每个Reduce任务根据分配到的输出值计算对应组Key的大数据的平均值,具体包括:
针对每个Reduce任务,执行:
调用当前Reduce任务计算分配到的每个输出值中的处理值与数量的乘积;
将得到的所有乘积求和后,除以分配到的输出值中的数量之和,得到所述当前Reduce任务对应组Key的大数据的平均值。
5.如权利要求1-4任一所述的方法,其特征在于,还包括:
针对每个Map任务,执行:
统计出当前Map任务处理后的输出值中包括的组Key;
分别将携带相同组Key的输出值中的处理值与数量相乘,并求和;
将每个组Key的和值除以对应组Key的输出值中的数量之和,得到对应组Key的处理值;
将每个组Key的处理值和数量作为对应组Key的输出值。
6.一种基于MapReduce的平均值计算装置,其特征在于,包括:
分组单元,用于将待处理大数据按照设定规则进行分组,并为每组的大数据添加一个组标识Key;
第一分配单元,用于将分组后的大数据分配给预先设置的至少一个映射Map任务;
第一调用单元,用于调用每个Map任务将分配到的大数据以行为单位进行处理,得到携带组Key的输出值,所述输出值包括对应行的大数据的处理值和数量;
第二分配单元,用于按照组Key将每个Map任务处理后的输出值分配给化简Reduce任务,组Key与Reduce任务一一对应;
第二调用单元,用于调用每个Reduce任务根据分配到的输出值计算对应组Key的大数据的平均值。
7.如权利要求6所述的装置,其特征在于,所述第一调用单元,具体用于:
针对每个Map任务,执行:
调用当前Map任务将分配到的大数据以行为单位进行处理,得到每行大数据的处理值Avg和数量;
将得到的每行大数据的Avg和数量作为输出值;
在每个输出值中添加对应的组Key。
8.如权利要求6所述的装置,其特征在于,所述第二分配单元,具体用于:
确定每个组Key对应的Reduce任务;
将每个Map任务得到的输出值进行可序列化处理;
将可序列化处理后的输出值按照携带的组Key分配给对应的Reduce任务。
9.如权利要求6所述的装置,其特征在于,所述第二调用单元,具体用于:
针对每个Reduce任务,执行:
调用当前Reduce任务计算分配到的每个输出值中的处理值与数量的乘积;
将得到的所有乘积求和后,除以分配到的输出值中的数量之和,得到所述当前Reduce任务对应组Key的大数据的平均值。
10.如权利要求6-9任一所述的装置,其特征在于,所述第一调用单元,还用于:
针对每个Map任务,执行:
统计出当前Map任务处理后的输出值中包括的组Key;
分别将携带相同组Key的输出值中的处理值与数量相乘,并求和;
将每个组Key的和值除以对应组Key的输出值中的数量之和,得到对应组Key的处理值;
将每个组Key的处理值和数量作为对应组Key的输出值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410795479.2A CN105760222A (zh) | 2014-12-18 | 2014-12-18 | 基于MapReduce的平均值计算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410795479.2A CN105760222A (zh) | 2014-12-18 | 2014-12-18 | 基于MapReduce的平均值计算方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105760222A true CN105760222A (zh) | 2016-07-13 |
Family
ID=56340751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410795479.2A Pending CN105760222A (zh) | 2014-12-18 | 2014-12-18 | 基于MapReduce的平均值计算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105760222A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130104140A1 (en) * | 2011-10-21 | 2013-04-25 | International Business Machines Corporation | Resource aware scheduling in a distributed computing environment |
CN103077253A (zh) * | 2013-01-25 | 2013-05-01 | 西安电子科技大学 | Hadoop框架下高维海量数据GMM聚类方法 |
CN103544528A (zh) * | 2013-11-15 | 2014-01-29 | 南京大学 | 一种基于Hadoop的BP神经网络分类方法 |
CN104008012A (zh) * | 2014-05-30 | 2014-08-27 | 长沙麓云信息科技有限公司 | 一种基于虚拟机动态迁移的高性能MapReduce实现机制 |
-
2014
- 2014-12-18 CN CN201410795479.2A patent/CN105760222A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130104140A1 (en) * | 2011-10-21 | 2013-04-25 | International Business Machines Corporation | Resource aware scheduling in a distributed computing environment |
CN103077253A (zh) * | 2013-01-25 | 2013-05-01 | 西安电子科技大学 | Hadoop框架下高维海量数据GMM聚类方法 |
CN103544528A (zh) * | 2013-11-15 | 2014-01-29 | 南京大学 | 一种基于Hadoop的BP神经网络分类方法 |
CN104008012A (zh) * | 2014-05-30 | 2014-08-27 | 长沙麓云信息科技有限公司 | 一种基于虚拟机动态迁移的高性能MapReduce实现机制 |
Non-Patent Citations (3)
Title |
---|
杨润芝等: ""云计算平台上实现30年气候资料整编的方法"", 《计算技术与自动化》 * |
杨辉华等: ""并行MapReduce PLS算法及其在光谱分析中的应用"", 《光谱学与光谱分析》 * |
郝卫东编著: "《云计算及其实践教程》", 31 July 2014, 西安电子科技大学出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111382174B (zh) | 多方数据联合查询方法、装置、服务器和存储介质 | |
CN104504154B (zh) | 一种数据聚合查询的方法及装置 | |
CN110471923B (zh) | 一种区块链交易记录的处理方法及装置 | |
CN105159783A (zh) | 一种系统任务分配方法 | |
CN104361091A (zh) | 一种大数据系统 | |
CN106168963B (zh) | 实时流数据的处理方法、装置及服务器 | |
CN104216961A (zh) | 一种数据处理方法和装置 | |
CN104239529A (zh) | 防止Hive数据倾斜的方法和装置 | |
CN107220376B (zh) | 一种数据查询方法和装置 | |
Kchaou et al. | Towards an offloading framework based on big data analytics in mobile cloud computing environments | |
CN102789394A (zh) | 一种并行处理消息的方法、装置、节点及服务器集群 | |
CN102915344A (zh) | 一种sql语句处理方法及装置 | |
CN110046638A (zh) | 多平台间数据的融合方法、装置及设备 | |
CN103149839A (zh) | 一种基于Kuhn-Munkres算法的电力设备运行控制方法 | |
CN105159669A (zh) | 一种有序处理多个Ajax数据源的方法与系统 | |
CN109709985A (zh) | 一种无人机任务优化方法、装置及系统 | |
CN108959571B (zh) | Sql语句的运算方法、装置、终端设备及存储介质 | |
Meddah et al. | Parallel distributed patterns mining using hadoop mapreduce framework | |
CN104281636A (zh) | 海量报表数据并发分布式处理方法 | |
CN105138527A (zh) | 一种数据分类回归方法及装置 | |
CN105760222A (zh) | 基于MapReduce的平均值计算方法及装置 | |
CN106446039B (zh) | 聚合式大数据查询方法及装置 | |
CN103152428A (zh) | 云平台上节点间进行服务通信的方法 | |
US10268727B2 (en) | Batching tuples | |
CN111049900A (zh) | 一种物联网流计算调度方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160713 |