CN102314336B - 一种数据处理方法和系统 - Google Patents

一种数据处理方法和系统 Download PDF

Info

Publication number
CN102314336B
CN102314336B CN201010221931.6A CN201010221931A CN102314336B CN 102314336 B CN102314336 B CN 102314336B CN 201010221931 A CN201010221931 A CN 201010221931A CN 102314336 B CN102314336 B CN 102314336B
Authority
CN
China
Prior art keywords
key2
intermediate result
result data
stipulations
data group
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.)
Active
Application number
CN201010221931.6A
Other languages
English (en)
Other versions
CN102314336A (zh
Inventor
蔡斌
史晓峰
刘奕慧
宫振飞
张文郁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Shenzhen Tencent Computer Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Tencent Computer Systems Co Ltd filed Critical Shenzhen Tencent Computer Systems Co Ltd
Priority to CN201010221931.6A priority Critical patent/CN102314336B/zh
Publication of CN102314336A publication Critical patent/CN102314336A/zh
Application granted granted Critical
Publication of CN102314336B publication Critical patent/CN102314336B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明实施例公开了一种数据处理方法和系统。该方法包括:通过若干个映射模块对原始数据进行处理,得到第一中间结果数据,将所有第一中间结果数据分成第一中间结果数据组,每个第一中间结果数据组对一个规约模块;判断各个第一中间结果数据组的数据量是否超过相应规约模块的处理能力,如果是,将每个第一中间结果数据组划分出多个第二中间结果数据组,对第二中间结果数据组分别进行合并规约,将合并规约后的第二中间结果数据组输出给划分出该第二中间结果数据组的第一中间结果数据组对应的规约模块。应用本发明能够避免需要处理的数据量超出相应处理设备的处理能力。

Description

一种数据处理方法和系统
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法和系统。
背景技术
映射规约(MapReduce)方法是一种典型的大规模数据处理方法,其将数据处理过程分为两个阶段,即映射(Map)阶段和规约(Reduce)阶段,在Map阶段,对每一个数据元素进行计算,在Reduce阶段,对一个列表的数据元素进行合并。
图1是现有技术中的MapReduce数据处理方法流程图。
如图1所示,该方法包括:
步骤101,读取需要处理的数据元素,对每一个数据元素进行计算,生成中间结果。
本步骤属于Map阶段,需要处理的数据元素以键值数据(key/value)对的形式作为Map阶段的输入,Map阶段得到的中间结果也是以key/value对的形式表示。
步骤102,对所述中间结果进行合并,得到最终的结果。
本步骤中,对所述中间结果中具有相同key值的value,根据当前应用场景进行合并,得到最终的结果,例如,对具有相同key值的value,对value进行求和并,求和合并成一个key/value对,将该合并后的key/value对作为最终的结果。
图2是MapReduce数据处理系统组成示意图。
如图2所示,该系统包括映射模块(Mapper)201和规约模块(Reducer)202,Mapper用于执行Map阶段的数据处理,得到中间结果,Reducer用于执行Reduce阶段的数据处理,得到最终结果。
图3是MapReduce数据处理系统进行数据处理的流程示意图。
一次MapReduce计算请求可以被称为一次作业,如图3所示,客户端工作跟踪模块(JobTracker)提交作业,该作业由JobTracker协调,先执行Map阶段(即图3中的M1、M2和M3阶段),再执行Reduce阶段(即图3中的R1和R2),其中Map阶段和Reduce阶段的处理都受任务跟踪模块(TaskTracker)监控,但是运行在独立于TaskTracker的进程中。
Map通过InputFormat,读取全部输入的一部分,在图3中,全部输入被划分为互不重叠的5部分,然后由5个Mapper分别进行处理(图3仅示出了3个Mapper,其中一个Mapper可以处理一个或两个或更多的输入部分)。Mapper的输入是键值对<key1,value1>,Mapper对key1和value1进行处理后,得到中间结果的键值对<key2,value2>,根据预设的规则将各个Mapper得到的中间结果<key2,value2>有区分性地写到不同的输出区域中,例如将键值相同的<key2,value2>写到一个输出区域,将键值不同的<key2,value2>写到不同的输出区域,例如图3将中间结果<key2,value2>按照键值的不同分别写到Region1和Region2中。
Map阶段完成以后,进入Reduce阶段。Reduce阶段包括三个步骤,分别为:混洗(Shuffle)、排序(Sort)和规约(Reduce)。通过混洗和排序阶段,将Map阶段输出的中间结果分类,将一类中间结果输出到一个Reduce任务上。例如,多个Mapper产生的同一个key值的中间结果分布在不同的设备上,通过混洗和排序,将分布在不同设备上的同一个key值的中间结果都输出到处理这个key值的Reducer所在设备上。
例如,在图3中,将来自不同Mapper的具有相同key值的<key2,value2>对合并到一起,形成<key2,<value2的列表>>,做为Reducer的输入。Reducer通过对<key2,<value2的列表>>进行处理,形成最终结果<key3,value3>。
由图2可见,目前对大规模数据进行处理时,处理过程一共分为两个阶段,即Map阶段和Reduce阶段,无论Map阶段输出的中间结果的数量如何,都是直接进入Reduce阶段,因此当Map阶段输出的中间结果数量较大时,将导致Reduce阶段需要处理的数据量过大,可能超出Reducer的数据处理能力,使得数据处理无法顺利完成。
为了减少Reducer的数据输入量,在图3中,尽量降低各个Mapper输出的中间结果的数据量,具体地,在每个Mapper中,通过合成模块(Combiner)按照预定规则对该Mapper得到的中间结果<key2,value2>先进行合并,例如将key值相同的所有中间结果合并成一个中间结果,然后将合并后的中间结果输出到Reducer中,以减少各个Mapper输出到Reducer的中间结果数据量。
图3中的Combiner虽然可以在一定程度上减少Mapper输出到Reducer的中间结果数据量,但是由于各个不同的Mapper输出的中间结果之间还可能存在大量的可合并数据,当各个Mapper输出的中间结果直接输出到Reducer时,可能导致Reducer需要处理的中间结果数据量仍然较大,超出Reducer的数据处理能力,使数据处理无法顺利完成。
例如,在下面的应用中,假如有如下的数据:
域名QQ号码性别
www.qq.com21201421男
www.sina.com.cn213123男
www.yahoo.com231123女
如果需要统计按照性别区分,访问某一地址的不同QQ号码的数量,则在相应的MapReduce应用中,在Mapper中,其输入是上面数据中的一行,输出的key2是“性别+_UV,value2是域名和QQ号码,例如,对于第一行数据,Mapper的输出是<″男_UV″,″www.qq.com#21201421″>,Reducer的处理流程是将所有的value2去重并输出去重以后的数目。
显然地,在这种情况下,对于Reduce任务,只有两个输入的key2,分别为″男UV″和″女UV″。如果我们的记录有100亿行,那么,最少有一个Reduce任务需要处理一个有50亿条value2记录的列表。Reduce任务需要在value2列表中去重并计数。在大规模数据中进行一次去重计数操作,往往会超出系统的能力,例如保留去重计数中间状态需要大量的内存,处理这样大规模数据集需要的时间也可能超过允许的时间窗口等等。
在上述场景下应用Combiner虽然可以一定程度上减少输入到Reducer的数据量,但是由于数据分散在各个Mapper上,在每一个Mapper上不能合并太多的<key2,value2>,因此减少数据量的效果有限。
发明内容
有鉴于此,本发明提供了一种数据处理方法和系统,以避免需要处理的数据量超出相应处理设备的处理能力。
本发明的技术方案具体是这样实现的:
一种数据处理方法,该方法包括:
通过若干个映射模块对原始数据进行处理,得到第一中间结果数据,将所有第一中间结果数据分成第一中间结果数据组;
判断各个第一中间结果数据组的数据量是否超过相应规约模块的处理能力,如果是,将每个第一中间结果数据组划分出多个第二中间结果数据组,对每个第二中间结果数据组分别进行合并规约,将合并规约后的结果输出给划分出该第二中间结果数据组的第一中间结果数据组对应的规约模块。
一种数据处理系统,该系统包括第一映射模块、第一规约模块、控制模块、第二映射模块和第二规约模块;
所述第一映射模块,对原始数据进行处理,得到第一中间结果数据,将所有第一中间结果数据分成第一中间结果数据组,每个第一中间结果数据组对应一个第一规约模块;
所述控制模块,在第一中间结果数据组的数据量超过相应第一规约模块的处理能力时,向第二规约模块发送调用指示;
所述第二规约模块,接收来自所述控制模块的调用指示后,将每个第一中间结果数据组划分出多个第二中间结果数据组,对每个第二中间结果数据组分别进行合并规约,将合并规约后的第二中间结果数据组输出给第二映射模块;
所述第二映射模块,将合并规约后的结果输出给划分出该第二中间结果数据组的第一中间结果数据组对应的第一规约模块;
所述第一规约模块,对接收的数据进行规约。
由上述技术方案可见,本发明在规约模块对应的第一中间结果数据组的数据量超过该规约模块的处理能力时,通过从该第一中间结果数据组进一步划分出多个第二中间结果数据组,对第二中间结果数据组分别进行合并规约,以减小每个第二中间结果数据组的数据量,然后再将合并后的第二中间结果数据组输出给划分出该第二中间结果数据组的第一中间结果数据组对应的规约模块,从而减小输出给该规约模块的数据量,达到避免需要处理的数据量超出相应处理设备的处理能力的目的。
由于本发明的第一中间结果数据组是从所有的第一中间结果数据中划分得到的,能够涵盖分散在各个映射模块上的第一中间结果数据,因此本发明通过从该第一中间结果数据组中划分出第二中间结果数据组,并对各个第二中间结果数据组进行合并规约,与按照现有技术将第一中间结果数据组直接输入到相应规约模块相比,能够有效地从整体上降低输入到所述规约模块的数据量。
附图说明
图1是现有技术中的MapReduce数据处理方法流程图。
图2是MapReduce数据处理系统组成示意图。
图3是MapReduce数据处理系统进行数据处理的流程示意图。
图4是本发明提供的数据处理方法流程图。
图5是本发明提供的数据处理系统的组成示意图。
图6是本发明的MapReduce系统和现有技术中的MapReduce系统的结构对比图。
具体实施方式
图4是本发明提供的数据处理方法流程图。
如图4所示,该方法包括:
步骤401,通过若干个映射模块(mapper)对原始数据进行处理,得到第一中间结果数据,将所有第一中间结果数据分成第一中间结果数据组,每个第一中间结果数据组对一个规约模块(reducer)。
步骤402,判断各个第一中间结果数据组的数据量是否超过相应规约模块的处理能力,如果是,执行步骤403,否则执行步骤404。
步骤403,将每个第一中间结果数据组划分出多个第二中间结果数据组,对每个第二中间结果数据组分别进行合并规约,将合并规约后的结果输出给划分出该第二中间结果数据组的第一中间结果数据组对应的规约模块,执行步骤405。
其中,本步骤中对数据合并规约是指,在对数据进行规约时,将能够合并的数据进行合并,例如,在去重计数时,将重复的多个数据仅存储一个,并且存储该数据的重复次数。
步骤404,将该第一中间结果数据组直接输出给相应的规约模块。
步骤405,规约模块对输入的中间结果数据进行规约处理得到最终结果。
在图4所示流程中,对于步骤401中的每一个第一中间结果数据,采用第二键值对<<key2,key2′>,value2>存储第一中间结果数据<key2,value2>,其中,第二键值对的键值<key2,key2′>中,不同的key2′取值是对相同的key2取值的进一步区分,所有第二键值对<<key2,key2′>,value2>中value2的取值涵盖了所有第一中间结果数据<key2,value2>中value2的取值。换言之,对于现有技术中采用第一键值对的方式存储的第一中间结果数据组,本发明通过采用不同的key2′取值,将该第一中间结果数据组划分成多个第二中间结果数据组,各个第二中间结果数据组采用第二键值对<<key2,key2′>,value2>的方式存储,不同的第二中间结果数据组的key2′取值不同。
在步骤402中,可以通过判断键值key2的每个取值对应的键值对<key2,value2>的总数是否超过预定数目,如果是,key2的该取值对应的第一中间结果数据组的数据量超过相应规约模块的处理能力,如果否,则key2的该取值对应的第一中间结果数据组的数据量没有超过相应规约模块的处理能力。
当判断出第一中间结果数据组的数据量超过相应规约模块的处理能力时,对于各个第一中间结果数据组,根据第二键值对的键值<key2,key2′>,将相同键值<key2,key2′>对应的第一中间结果数据<key2,value2>划分为一个第二中间结果数据组,该第二中间结果数据组的键值对为<<key2,key2′>,value2>,<key2,key2′>的不同取值对应的<<key2,key2′>,value2>划分到不同的第二中间结果数据组中。
对每个第二中间结果数据组分别进行合并规约时,对于<key2,key2′>的每个取值对应的所有<<key2,key2′>,value2>,将<key2,key2′>相同的<<key2,key2′>,value2>中的value2进行合并规约,存储合并规约结果。
将合并规约后的结果输出给划分出该第二中间结果数据组的第一中间结果数据组对应的规约模块包括:
对每个第二中间结果数据组合并规约的结果,通过映射来分发数据,得到第三中间结果数据组,将每个第三中间结果数据组输出到相应的规约模块进行规约。
图5是本发明提供的数据处理系统的组成示意图。
如图5所示,该系统包括第一映射模块501、第一规约模块502、控制模块503、第二映射模块505和第二规约模块504。
第一映射模块501,对原始数据进行处理,得到第一中间结果数据,将所有第一中间结果数据分成第一中间结果数据组,每个第一中间结果数据组对应一个第一规约模块502。
控制模块503,在第一中间结果数据组的数据量超过相应第一规约模块502的处理能力时,向第二规约模块504发送调用指示。
第二规约模块504,接收来自控制模块503的调用指示后,从第一中间结果数据组划分出多个第二中间结果数据组,对每个第二中间结果数据组分别进行合并规约,将合并规约后的第二中间结果数据组输出给第二映射模块505。
第二映射模块505,将合并规约后的结果输出给划分出该第二中间结果数据组的第一中间结果数据组对应的第一规约模块502。
第一规约模块502,对接收的数据进行规约。
其中,控制模块503,可以在第一中间结果数据组的数据量没有超过相应第一规约模块502的处理能力时,控制第一映射模块501将该第一中间结果数据组输出到相应的第一规约模块502。
具体地,第一映射模块501,采用第二键值对<<key2,key2′>,value2>存储第一中间结果数据<key2,value2>,其中,第二键值对的键值<key2,key2′>中,key2′的取值是对相同的value2取值的进一步区分,所有第二键值对<<key2,key2′>,value2>中value2的取值涵盖了所有第一中间结果数据<key2,value2>中value2的取值。
控制模块503,判断键值key2的每个取值对应的键值对<key2,value2>的总数是否超过预定数目,如果是,key2的该取值对应的第一中间结果数据组的数据量超过相应第一规约模块502的处理能力,如果否,key2的该取值对应的第一中间结果数据组的数据量没有超过相应第一规约模块502的处理能力。
第二规约模块504,对于<key2,key2′>的每个取值对应的所有<<key2,key2′>,value2>,将<key2,key2′>相同的<<key2,key2′>,value2>中的value2进行合并规约,存储合并规约结果。
第二映射模块505,对第二规约模块504进行合并规约的结果,通过映射来分发数据,得到第三中间结果数据组,将每个第三中间结果数据组输出到相应的第一规约模块502。
由图4和图5所示的技术方案可知,本发明在MapReduce系统中,通过在Map阶段得到的中间结果的key中,添加新的分组信息,即添加key2′值,可以将Map阶段得到的中间结果划分为更多的中间结果数据组,对每个中间结果数据组执行合并规约操作,例如可以调用Combiner来执行合并规约操作,然后再调用新创建的Mapper将合并后的中间结果分发给规约模块,以得到最终结果。
简言之,现有技术的MapReduce处理方法中,仅包括一个Map阶段和一个Reduce阶段,该Map阶段输出的中间结果直接输出到Reduce阶段,该Reduce阶段直接输出最终的结果,因此当该Map阶段输出的中间结果数据量过大,以致于超出该Reduce阶段中相应Reduce任务的处理能力时,将导致数据处理无法正常进行。本发明中,可以根据Map阶段输出的中间结果的数据量,决定是否在所述Map阶段和所述Reduce阶段之间插入新的Reduce阶段和Map阶段,如果决定插入,则在接收原始数据的Map阶段输出的中间结果数据的数据量超过相应Reduce任务的数据处理能力时,通过创建新的Reduce任务,该任务调用现有的Combiner对该中间结果数据进行合并规约,然后再创建新的分发Mapper将合并规约后的数据分发给用以得到最终结果的Reduce任务。
图6是本发明的MapReduce系统和现有技术中的MapReduce系统的结构对比图。
如图6所示,现有技术中的MapReduce系统仅包括第一映射模块(Mapper)601和第一规约模块(Reducer)602,而本发明的MapReduce系统在现有技术中的第一映射模块601和第一规约模块602之间增加了第二规约模块603和第二映射模块604,其中的第二规约模块603可以是新创建的Reducer,通过调用的现有技术中的Combiner进行合并规约,第二映射模块604可以通过创建新的Mapper分发器实现。
对中间结果数据进行合并规约时,具体地,可以将该中间结果数据划分为更细的分组,例如通过插入新的键值key2′,将每个key2取值对应的中间结果数据组<key2,value2>划分成更细的分组<<key2,key2′>,value2>,其中key2′的不同取值对应了一个不同的更细分组,然后对每一个更细分组进行去重等数据合并操作。
其中,也可以先判断key2的每个取值对应的<key2,value2>的数据量是否超出了相应Reducer的处理能力,只有在超过相应Reducer的处理能力时,才将key2的每个取值对应的所有<key2,value2>划分为更细的分组。
下面仍以背景技术部分提到的统计按照性别区分访问某一地址的不同QQ号码的数量的应用为例,对本发明进行示例性说明。
在Map阶段,本发明的Mapper的输出是<<key2,key2′>,value2>,其中,key2为现有技术中的Mapper输出的key,key2′是为了插入Combiner而产生的新key,该key和key2,一起构成了<key2,key2′>,做为调用Combiner时Mapper中间结果的key,而value2还是现有技术中的Mapper输出的value。以上面提到的例子来说明如下:
现有技术中的Mapper输出的<″男_UV″,″www.qq.com#21201421″>,则在本发明中,输出为<″男_UV″,″01421″,″www.qq.com#21201421″>。其中,key2为″男_UV″,key2′为″01421″,value为″www.qq.com#21201421″。Mapper的本地输出中,需要由key2和key2′形成的新key值:<key2,key2′>,并存储<<key2,key2′>,value2>。另外,由于新key是由<key2,key2′>得到的,所以<key2,value2>的值隐含在所有的<<key2,key2′>,value2>中。
如果Map阶段的中间结果数据输出量不会造成某一个Reduce任务的输入过载,那么,不需要插入Combiner,使用<key2,value>继续处理。如果判定需要插入Combiner,则本发明的JobTracker模块会产生一个Reducer′和Mapper′,其中的Reducer′通过简单调用Combiner实现,而Mapper′是一个简单的消息分发器。
本发明的Reducer′可以通过调用Combiner完成对数据的合并规约,减少数据量,然后进入下一阶段的MapReduce过程,该过程通过Mapper′分发数据,执行原有的Reducer,完成计算。
可见,本发明提供的技术方案能够避免在大规模数据处理,尤其是数据统计分析中使用的去重计数操作的Reduce任务中,因为数据量过大,超出系统能力造成任务失败。
具体地,通过根据Map阶段的中间结果数据量自动判定是否插入Combiner,进行数据合并,从而减小了数据量。
另外,本发明根据系统运行状况选择是否插入Combiner,避免了中间结果数据量较小时也插入Combiner导致的资源浪费,当中间结果数据量较小时,Reducer可以直接计算而不必插入Combiner。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (9)

1.一种数据处理方法,其特征在于,该方法包括:
通过若干个映射模块对原始数据进行处理,得到第一中间结果数据,将所有第一中间结果数据分成第一中间结果数据组,每个第一中间结果数据组对一个规约模块;
判断各个第一中间结果数据组的数据量是否超过相应规约模块的处理能力,如果是,将每个第一中间结果数据组划分出多个第二中间结果数据组,对每个第二中间结果数据组分别进行合并规约,将合并规约后的结果输出给划分出该第二中间结果数据组的第一中间结果数据组对应的规约模块;
所述划分出多个第二中间结果数据组包括:
将相同键值key2对应的第一中间结果数据<key2,value2>,根据第二键值对的键值<key2,key2'>中key2'的取值,划分为多个第二中间结果数据组,该第二中间结果数据组的键值对为<<key2,key2'>,value2>;
其中,第二键值对的键值<key2,key2'>中,不同的key2'取值是对相同的key2取值的进一步区分,所有第二键值对<<key2,key2'>,value2>中value2的取值涵盖了所有第一中间结果数据<key2,value2>中value2的取值。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
如果第一中间结果数据组的数据量没有超过相应规约模块的处理能力,则将该第一中间结果数据组直接输出给相应的规约模块。
3.根据权利要求1或2所述的方法,其特征在于,采用第二键值对<<key2,key2'>,value2>存储第一中间结果数据<key2,value2>;
判断各个第一中间结果数据组的数据量是否超过相应规约模块的处理能力包括:
判断键值key2的每个取值对应的键值对<key2,value2>的总数是否超过预定数目,如果是,key2的该取值对应的第一中间结果数据组的数据量超过相应规约模块的处理能力。
4.根据权利要求3所述的方法,其特征在于,所述对每个第二中间结果数据组分别进行合并规约包括:
对于<key2,key2'>的每个取值对应的所有<<key2,key2'>,value2>,将<key2,key2'>相同的<<key2,key2'>,value2>中的value2进行合并规约,存储合并规约结果。
5.根据权利要求4所述的方法,其特征在于,所述将合并规约后的结果输出给划分出该第二中间结果数据组的第一中间结果数据组对应的规约模块包括:
对每个第二中间结果数据组合并规约的结果,通过映射来分发数据,得到第三中间结果数据组,将每个第三中间结果数据组输出到相应的规约模块,进行规约。
6.一种数据处理系统,其特征在于,该系统包括第一映射模块、第一规约模块、控制模块、第二映射模块和第二规约模块;
所述第一映射模块,对原始数据进行处理,得到第一中间结果数据,将所有第一中间结果数据分成第一中间结果数据组,每个第一中间结果数据组对应一个第一规约模块;
所述控制模块,在第一中间结果数据组的数据量超过相应第一规约模块的处理能力时,向第二规约模块发送调用指示;
所述第二规约模块,接收来自所述控制模块的调用指示后,将每个第一中间结果数据组划分出多个第二中间结果数据组,对每个第二中间结果数据组分别进行合并规约,将合并规约后的第二中间结果数据组输出给第二映射模块;
所述第二映射模块,将合并规约后的结果输出给划分出该第二中间结果数据组的第一中间结果数据组对应的第一规约模块;
所述第一规约模块,对接收的数据进行规约;
所述划分出多个第二中间结果数据组包括:
将相同键值key2对应的第一中间结果数据<key2,value2>,根据第二键值对的键值<key2,key2'>中key2'的取值,划分为多个第二中间结果数据组,该第二中间结果数据组的键值对为<<key2,key2'>,value2>;
其中,第二键值对的键值<key2,key2'>中,不同的key2'取值是对相同的key2取值的进一步区分,所有第二键值对<<key2,key2'>,value2>中value2的取值涵盖了所有第一中间结果数据<key2,value2>中value2的取值。
7.根据权利要求6所述的系统,其特征在于,
所述控制模块,在第一中间结果数据组的数据量没有超过相应第一规约模块的处理能力时,控制第一映射模块将该第一中间结果数据组输出到相应的第一规约模块。
8.根据权利要求6或7所述的系统,其特征在于,
所述第一映射模块,采用第二键值对<<key2,key2'>,value2>存储第一中间结果数据<key2,value2>,其中,第二键值对的键值<key2,key2'>中,key2'的取值是对相同的value2取值的进一步区分,所有第二键值对<<key2,key2'>,value2>中value2的取值涵盖了所有第一中间结果数据<key2,value2>中value2的取值;
所述控制模块,判断键值key2的每个取值对应的键值对<key2,value2>的总数是否超过预定数目,如果是,key2的该取值对应的第一中间结果数据组的数据量超过相应第一规约模块的处理能力,如果否,key2的该取值对应的第一中间结果数据组的数据量没有超过相应第一规约模块的处理能力;
所述第二规约模块,对于<key2,key2'>的每个取值对应的所有<<key2,key2'>,value2>,将<key2,key2'>相同的<<key2,key2'>,value2>中的value2进行合并规约,存储合并规约结果。
9.根据权利要求8所述的系统,其特征在于,
所述第二映射模块,对第二规约模块进行合并规约的结果,通过映射来分发数据,得到第三中间结果数据组,将每个第三中间结果数据组输出到相应的第一规约模块。
CN201010221931.6A 2010-07-05 2010-07-05 一种数据处理方法和系统 Active CN102314336B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010221931.6A CN102314336B (zh) 2010-07-05 2010-07-05 一种数据处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010221931.6A CN102314336B (zh) 2010-07-05 2010-07-05 一种数据处理方法和系统

Publications (2)

Publication Number Publication Date
CN102314336A CN102314336A (zh) 2012-01-11
CN102314336B true CN102314336B (zh) 2016-04-13

Family

ID=45427537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010221931.6A Active CN102314336B (zh) 2010-07-05 2010-07-05 一种数据处理方法和系统

Country Status (1)

Country Link
CN (1) CN102314336B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999633A (zh) * 2012-12-18 2013-03-27 北京师范大学珠海分校 网络信息的云聚类提取方法
CN104424339B (zh) * 2013-09-11 2019-02-22 腾讯科技(深圳)有限公司 数据分析的方法、装置及系统
CN103699441B (zh) * 2013-12-05 2017-07-18 深圳先进技术研究院 基于任务粒度的MapReduce报表任务执行方法
CN105653534B (zh) * 2014-11-13 2020-03-17 深圳市腾讯计算机系统有限公司 一种数据处理方法及装置
CN104572921B (zh) * 2014-12-27 2017-12-19 北京奇虎科技有限公司 一种跨数据中心的数据同步方法和装置
CN106202092B (zh) 2015-05-04 2020-03-06 阿里巴巴集团控股有限公司 数据处理的方法及系统
CN105550523A (zh) * 2015-12-28 2016-05-04 上海携程商务有限公司 数据处理方法
CN108415912B (zh) * 2017-02-09 2021-11-09 阿里巴巴集团控股有限公司 基于MapReduce模型的数据处理方法和设备
CN107330106B (zh) * 2017-07-07 2020-11-20 苏州浪潮智能科技有限公司 一种基于fpga的数据过滤方法及装置
CN110309177B (zh) * 2018-03-23 2023-11-03 腾讯科技(深圳)有限公司 一种数据处理的方法以及相关装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764835A (zh) * 2008-12-25 2010-06-30 华为技术有限公司 基于MapReduce编程架构的任务分配方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190610B2 (en) * 2006-10-05 2012-05-29 Yahoo! Inc. MapReduce for distributed database processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764835A (zh) * 2008-12-25 2010-06-30 华为技术有限公司 基于MapReduce编程架构的任务分配方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Practical Skew Handling in Parallel Joins;David J.DeWitt etc.;《Proceedings of the 18th VLDB Conference》;19921231;正文第30页右栏 *

Also Published As

Publication number Publication date
CN102314336A (zh) 2012-01-11

Similar Documents

Publication Publication Date Title
CN102314336B (zh) 一种数据处理方法和系统
CN110166282B (zh) 资源分配方法、装置、计算机设备和存储介质
CN104731796B (zh) 数据存储计算方法和系统
US10002019B2 (en) System and method for assigning a transaction to a serialized execution group based on an execution group limit for parallel processing with other execution groups
AU2017202873A1 (en) Efficient query processing using histograms in a columnar database
US10901800B2 (en) Systems for parallel processing of datasets with dynamic skew compensation
CN111586091B (zh) 一种实现算力组配的边缘计算网关系统
CN104462121A (zh) 数据处理方法、装置及系统
CN106815254A (zh) 一种数据处理方法和装置
CN103392169B (zh) 排序方法和系统
CN103984761A (zh) 海量异构数据的存储方法及系统
CN103246549B (zh) 一种数据转存的方法及系统
CN106202092A (zh) 数据处理的方法及系统
CN108268586A (zh) 跨多数据表的数据处理方法、装置、介质和计算设备
CN105872061A (zh) 一种服务器集群管理方法、装置及系统
CN108415912A (zh) 基于MapReduce模型的数据处理方法和设备
CN101419600A (zh) 基于面向对象文件系统的数据副本映射方法及装置
CN107391039B (zh) 一种数据对象存储方法和装置
JP2022524177A (ja) トランザクションの並行実行方法、装置及び記憶媒体
CN105069029B (zh) 一种实时etl系统及方法
CN106980540A (zh) 一种分布式多维离散数据的计算方法
CN104008178B (zh) 一种数据的动态加载处理方法及系统
CN109446167A (zh) 一种日志数据存储、提取方法及装置
CN108021448B (zh) 一种内核空间的优化方法及装置
CN110909085A (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
C14 Grant of patent or utility model
GR01 Patent grant