CN102314336A - 一种数据处理方法和*** - Google Patents

一种数据处理方法和*** Download PDF

Info

Publication number
CN102314336A
CN102314336A CN2010102219316A CN201010221931A CN102314336A CN 102314336 A CN102314336 A CN 102314336A CN 2010102219316 A CN2010102219316 A CN 2010102219316A CN 201010221931 A CN201010221931 A CN 201010221931A CN 102314336 A CN102314336 A CN 102314336A
Authority
CN
China
Prior art keywords
key2
intermediate result
result data
stipulations
data set
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.)
Granted
Application number
CN2010102219316A
Other languages
English (en)
Other versions
CN102314336B (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

Images

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.com       21201421  男
www.sina.com.cn  213123    男
......
www.yahoo.com    231123    女
如果需要统计按照性别区分,访问某一地址的不同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.一种数据处理方法,其特征在于,该方法包括:
通过若干个映射模块对原始数据进行处理,得到第一中间结果数据,将所有第一中间结果数据分成第一中间结果数据组,每个第一中间结果数据组对一个规约模块;
判断各个第一中间结果数据组的数据量是否超过相应规约模块的处理能力,如果是,将每个第一中间结果数据组划分出多个第二中间结果数据组,对每个第二中间结果数据组分别进行合并规约,将合并规约后的结果输出给划分出该第二中间结果数据组的第一中间结果数据组对应的规约模块。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
如果第一中间结果数据组的数据量没有超过相应规约模块的处理能力,则将该第一中间结果数据组直接输出给相应的规约模块。
3.根据权利要求1或2所述的方法,其特征在于,采用第二键值对<<key2,key2′>,value2>存储第一中间结果数据<key2,value2>;
其中,第二键值对的键值<key2,key2′>中,不同的key2′取值是对相同的key2取值的进一步区分,所有第二键值对<<key2,key2′>,value2>中value2的取值涵盖了所有第一中间结果数据<key2,value2>中value2的取值;
判断各个第一中间结果数据组的数据量是否超过相应规约模块的处理能力包括:
判断键值key2的每个取值对应的键值对<key2,value2>的总数是否超过预定数目,如果是,key2的该取值对应的第一中间结果数据组的数据量超过相应规约模块的处理能力;
所述划分出多个第二中间结果数据组包括:
将相同键值key2对应的第一中间结果数据<key2,value2>,根据第二键值对的键值<key2,key2′>中key2′的取值,划分为多个第二中间结果数据组,该第二中间结果数据组的键值对为<<key2,key2′>,value2>。
4.根据权利要求3所述的方法,其特征在于,所述对每个第二中间结果数据组分别进行合并规约包括:
对于<key2,key2′>的每个取值对应的所有<<key2,key2′>,value2>,将<key2,key2′>相同的<<key2,key2′>,value2>中的value2进行合并规约,存储合并规约结果。
5.根据权利要求4所述的方法,其特征在于,所述将合并规约后的结果输出给划分出该第二中间结果数据组的第一中间结果数据组对应的规约模块包括:
对每个第二中间结果数据组合并规约的结果,通过映射来分发数据,得到第三中间结果数据组,将每个第三中间结果数据组输出到相应的规约模块,进行规约。
6.一种数据处理***,其特征在于,该***包括第一映射模块、第一规约模块、控制模块、第二映射模块和第二规约模块;
所述第一映射模块,对原始数据进行处理,得到第一中间结果数据,将所有第一中间结果数据分成第一中间结果数据组,每个第一中间结果数据组对应一个第一规约模块;
所述控制模块,在第一中间结果数据组的数据量超过相应第一规约模块的处理能力时,向第二规约模块发送调用指示;
所述第二规约模块,接收来自所述控制模块的调用指示后,将每个第一中间结果数据组划分出多个第二中间结果数据组,对每个第二中间结果数据组分别进行合并规约,将合并规约后的第二中间结果数据组输出给第二映射模块;
所述第二映射模块,将合并规约后的结果输出给划分出该第二中间结果数据组的第一中间结果数据组对应的第一规约模块;
所述第一规约模块,对接收的数据进行规约。
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 true CN102314336A (zh) 2012-01-11
CN102314336B 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)

Cited By (10)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080086442A1 (en) * 2006-10-05 2008-04-10 Yahoo! Inc. Mapreduce for distributed database processing
CN101764835A (zh) * 2008-12-25 2010-06-30 华为技术有限公司 基于MapReduce编程架构的任务分配方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080086442A1 (en) * 2006-10-05 2008-04-10 Yahoo! Inc. Mapreduce for distributed database processing
CN101764835A (zh) * 2008-12-25 2010-06-30 华为技术有限公司 基于MapReduce编程架构的任务分配方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DAVID J.DEWITT ETC.: "Practical Skew Handling in Parallel Joins", 《PROCEEDINGS OF THE 18TH VLDB CONFERENCE》, 31 December 1992 (1992-12-31) *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999633A (zh) * 2012-12-18 2013-03-27 北京师范大学珠海分校 网络信息的云聚类提取方法
CN104424339A (zh) * 2013-09-11 2015-03-18 腾讯科技(深圳)有限公司 数据分析的方法、装置及***
WO2015035864A1 (en) * 2013-09-11 2015-03-19 Tencent Technology (Shenzhen) Company Limited Method, apparatus and system for data analysis
US10459888B2 (en) 2013-09-11 2019-10-29 Tencent Technology (Shenzhen) Company Limited Method, apparatus and system for data analysis
CN104424339B (zh) * 2013-09-11 2019-02-22 腾讯科技(深圳)有限公司 数据分析的方法、装置及***
CN103699441A (zh) * 2013-12-05 2014-04-02 深圳先进技术研究院 基于任务粒度的MapReduce报表任务执行方法
CN105653534A (zh) * 2014-11-13 2016-06-08 深圳市腾讯计算机***有限公司 一种数据处理方法及装置
CN105653534B (zh) * 2014-11-13 2020-03-17 深圳市腾讯计算机***有限公司 一种数据处理方法及装置
CN104572921B (zh) * 2014-12-27 2017-12-19 北京奇虎科技有限公司 一种跨数据中心的数据同步方法和装置
CN104572921A (zh) * 2014-12-27 2015-04-29 北京奇虎科技有限公司 一种跨数据中心的数据同步方法和装置
WO2016177279A1 (zh) * 2015-05-04 2016-11-10 阿里巴巴集团控股有限公司 数据处理的方法及***
US10872070B2 (en) 2015-05-04 2020-12-22 Advanced New Technologies Co., Ltd. Distributed data processing
US10592491B2 (en) 2015-05-04 2020-03-17 Alibaba Group Holding Limited Distributed data processing
CN105550523A (zh) * 2015-12-28 2016-05-04 上海携程商务有限公司 数据处理方法
CN108415912A (zh) * 2017-02-09 2018-08-17 阿里巴巴集团控股有限公司 基于MapReduce模型的数据处理方法和设备
CN107330106A (zh) * 2017-07-07 2017-11-07 郑州云海信息技术有限公司 一种基于fpga的数据过滤方法及装置
CN107330106B (zh) * 2017-07-07 2020-11-20 苏州浪潮智能科技有限公司 一种基于fpga的数据过滤方法及装置
CN110309177A (zh) * 2018-03-23 2019-10-08 腾讯科技(深圳)有限公司 一种数据处理的方法以及相关装置
CN110309177B (zh) * 2018-03-23 2023-11-03 腾讯科技(深圳)有限公司 一种数据处理的方法以及相关装置

Also Published As

Publication number Publication date
CN102314336B (zh) 2016-04-13

Similar Documents

Publication Publication Date Title
CN102314336A (zh) 一种数据处理方法和***
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算***以及负载均衡方法
US9529590B2 (en) Processor for large graph algorithm computations and matrix operations
CN103559083B (zh) 网页爬取任务调度方法与任务调度器
CN107908690A (zh) 一种基于大数据运营分析的数据处理方法
CN103392169B (zh) 排序方法和***
CN105391654A (zh) 基于账户活跃度的***资源分配方法及装置
CN103595805A (zh) 一种基于分布式集群的数据放置方法
CN104503840A (zh) 对终端资源进行优化的方法及装置
CN106202092A (zh) 数据处理的方法及***
CN103369042A (zh) 一种数据处理方法和装置
CN102541858A (zh) 基于映射和规约的数据均衡性处理方法、装置及***
CN108491255B (zh) 自助式MapReduce数据优化分配方法及***
CN106506266A (zh) 基于GPU、Hadoop/Spark混合计算框架的网络流量分析方法
CN1498374A (zh) 有效地共享网络处理器中的存储器带宽的设备和方法
CN103177035A (zh) 一种在数据库中查询数据的装置及方法
CN108270805A (zh) 用于数据处理的资源分配方法及装置
CN106130960A (zh) 盗号行为的判断***、负载调度方法和装置
CN106131227A (zh) 负载平衡方法、元数据服务器***及负载平衡***
CN105786619A (zh) 虚拟机分配方法及装置
CN115098278B (zh) 一种基于微服务的数字孪生车间多场景交互方法
CN107169138B (zh) 一种面向分布式内存数据库查询引擎的数据分发方法
CN104156505A (zh) 一种基于用户行为分析的Hadoop集群作业调度方法及装置
CN109861791A (zh) 一种周期型数据报文传输方法、***、装置和存储介质
CN104281587B (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