CN105786938A - 一种对大数据进行处理的方法和装置 - Google Patents
一种对大数据进行处理的方法和装置 Download PDFInfo
- Publication number
- CN105786938A CN105786938A CN201410836226.5A CN201410836226A CN105786938A CN 105786938 A CN105786938 A CN 105786938A CN 201410836226 A CN201410836226 A CN 201410836226A CN 105786938 A CN105786938 A CN 105786938A
- Authority
- CN
- China
- Prior art keywords
- key
- value pair
- pair set
- processing module
- value
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24545—Selectivity estimation or determination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种对大数据进行处理的方法和装置,属于数据处理领域。所述方法包括:获取多个键值对集合,键值对集合包括至少一个键值对,键值对中的键和值分别为待处理的大数据中的两个子数据,且两个子数据之间存在预设数据关系,键值对集合中的各键值对中的取模余数都相同;分别计算每个键值对集合中包括的各值之和,得到每个键值对集合包括的值的总值;获取Reduce处理模块集合中的每个Reduce处理模块的负载情况;根据每个键值对集合中包括的值的总值和每个Reduce处理模块的负载情况,分别为每个Reduce处理模块分配对应的键值对集合;通过每个Reduce处理模块分别对分配到的所述键值对集合进行处理。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种对大数据进行处理的方法和装置。
背景技术
大数据就是一种包含大量数据的数据集,这些数据可以称为是大数据的子数据,在大数据中只有少量的子数据对用户具有较高的价值。为了方便用户浏览大数据,目前可以对大数据进行处理,将大数据中包含的价值较高的子数据优先提供给用户。例如,在搜索引擎领域中,搜索引擎根据用户输入的关键词搜索出众多搜索结果,该众多搜索结果便组成了一个大数据,搜索引擎通过对该大数据进行处理,得到对用户价值较高的搜索结果并优先提供给用户。
目前可以通过如下过程来对大数据进行处理,包括:通过映射(英文:Map)模块对待处理的大数据进行Map处理并输出大数据中的子数据对应的至少一个键值对,子数据对应的键值对中的键为该子数据,值为大数据中的与该键之间存在预设关系的其他一子数据。然后将包含键相同的各键值对分配给一规约(英文:Reduce)处理模块集合中的一Reduce处理模块,由该Reduce处理模块对这些键值对中的值进行处理,并输出该键的价值度,该键为一子数据,即得到该子数据的价值度,按上述方法可以得到大数据中的每个子数据的价值度,价值度越高的子数据,对用户越有价值,根据价值度向用户显示大数据中包括的子数据。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
目前根据键值对的键来将各键值对分配到各Reduce处理模块中,可能会造成各Reduce处理模块的负载不均衡。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种对大数据进行处理的方法和装置。所述技术方案如下:
第一方面,本发明实施例提供了一种对大数据进行处理的方法,所述方法包括:
获取多个键值对集合,所述键值对集合包括至少一个键值对,键值对中的键和值分别为待处理的大数据中的两个子数据,且所述两个子数据之间存在预设数据关系,所述键值对集合中的各键值对中的取模余数都相同;
分别计算每个键值对集合中包括的各值之和,得到所述每个键值对集合包括的值的总值;
获取Reduce处理模块集合中的每个Reduce处理模块的负载情况;
根据所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合;
通过所述每个Reduce处理模块分别对分配到的所述键值对集合进行处理。
在第一方面的第一种可能的实现方式中,所述获取多个键值对集合步骤包括:
通过Map处理模块对所述大数据进行处理,得到多个所述键值对;
根据预先设置的取模系数,分别对得到的多个所述键值对的键进行取模操作,分别得到多个所述键值对的取模余数;
将取模余数相同的多个所述键值对分配到一个键值对集合中,形成所述多个键值对集合。
与第一方面的第一种可能的实现方式相结合,在第一方面的第二种可能的实现方式中,所述取模系数=Reduce处理模块数量×取模因子,所述取模因子是预先确定的。
在第一方面的第三种可能的实现方式中,所述根据所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合步骤包括:
确定当前所述键值对集合的分配次数;
根据确定的当前所述键值对集合的分配次数,找到与所述分配次数对应的所述键值对集合的分配比例,所述分配次数与所述键值对集合的分配比例的对应关系是预先设定的;
根据得到的所述键值对集合的分配比例,从多个所述键值对集合中获取相应数量的所述键值对集合;
根据按照分配比例获取到的所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合。
与第一方面的第三种可能的实现方式相结合,在第一方面的第四种可能的实现方式中,根据按照分配比例获取到的所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合步骤包括:
按照对负载较轻的所述Reduce处理模块分配总值较大的所述键值对集合的分配规则,分别为所述每个Reduce处理模块分配对应的键值对集合。
第二方面,本发明实施例提供一种对大数据进行处理的装置,所述装置包括:
第一获取模块,用于获取多个键值对集合,所述键值对集合包括至少一个键值对,键值对中的键和值分别为待处理的大数据中的两个子数据,且所述两个子数据之间存在预设数据关系,所述键值对集合中的各键值对中的取模余数都相同;
计算模块,用于分别计算每个键值对集合中包括的各值之和,得到所述每个键值对集合包括的值的总值;
第二获取模块,用于获取Reduce处理模块集合中的每个Reduce处理模块的负载情况;
分配模块,用于根据所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合;
处理模块,用于通过所述每个Reduce处理模块分别对分配到的所述键值对集合进行处理。
在第二方面的第一种可能的实现方式中,所述第一获取模块用于:
通过Map处理模块对所述大数据进行处理,得到多个所述键值对;
根据预先设置的取模系数,分别对得到的多个所述键值对的键进行取模操作,分别得到多个所述键值对的取模余数;
将取模余数相同的多个所述键值对分配到一个键值对集合中,形成所述多个键值对集合。
与第二方面的第一种可能的实现方式相结合,在第二方面的第二种可能的实现方式中,所述取模系数=Reduce处理模块数量×取模因子,所述取模因子是预先确定的。
在第二方面的第三种可能的实现方式中,所述分配模块用于:
确定当前所述键值对集合的分配次数;
根据确定的当前所述键值对集合的分配次数,找到与所述分配次数对应的所述键值对集合的分配比例,所述分配次数与所述键值对集合的分配比例的对应关系是预先设定的;
根据得到的所述键值对集合的分配比例,从多个所述键值对集合中获取相应数量的所述键值对集合;
根据按照分配比例获取到的所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合。
与第二方面的第三种可能的实现方式相结合,在第二方面的第四种可能的实现方式中,所述分配模块还用于:
按照对负载较轻的所述Reduce处理模块分配总值较大的所述键值对集合的分配规则,分别为所述每个Reduce处理模块分配对应的键值对集合。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的对大数据进行处理的方法和装置,根据各个分区中各键值对集合的总值和各Reduce处理模块的负载情况将各分区中的键值对分配到各个Reduce处理模块,相对于通常情况下根据键值对的键将各键值对分配到各Reduce任务的方式,使各Reduce处理模块的负载更加均衡。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的对大数据进行处理的方法所涉及的一种实施环境的结构示意图;
图2是本发明实施例提供的对大数据进行处理的方法所涉及的另一种实施环境的结构示意图;
图3是本发明实施例一提供的对大数据进行处理的方法的流程图;
图4是本发明实施例二提供的对大数据进行处理的方法的流程图;
图5是本发明实施例三提供的对大数据进行处理的装置结构示意图;
图6是本发明实施例四提供的对大数据进行处理的装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
参见图1,其示出了本发明实施例提供的虚拟机处理方法所涉及的一种实施环境的结构示意图,该系统包括:作业服务器10和与作业服务器10进行数据交互的任务服务器20。
其中,作业服务器10中设置有作业跟踪器11,作业跟踪器11根据任务服务器20传输的每个键值对集合包括的总值,以及直接从Reduce处理模块集合中获取每个Reduce处理模块的负载情况,根据预先设定的分配规则,分别为每个Reduce处理模块分配对应的键值对集合,为每个Reduce处理模块分配对应的键值对集合的过程就是建立各键值对集合与每个Reduce处理模块的对应关系;然后将建立好的各键值对集合与每个Reduce处理模块的对应关系反馈给任务服务器20。
任务服务器20中设置有拆分器21、Map处理模块22、Reduce处理模块23、分区器24和任务跟踪器25;其中,拆分器21,用于将大数据分为多个数据分片,以便Map处理模块22对大数据进行处理;Map处理模块22,用于对由大数据得到的多个数据分片进行Map处理,得到多个键值对,将得到的多个键值对发送给分区器24;分区器24,用于对得到的键值对进行取模操作,将取模余数相同的键值对分配到一个键值对集合中,然后通过计算得到每个键值对集合的总值,将得到的键值对集合的总值传输到作业跟踪器11中;任务跟踪器25,用于获取作业跟踪器11反馈的各键值对集合与每个Reduce处理模块的对应关系,确定当前键值对集合的分配次数,根据确定的分配次数找到与分配次数对应的键值对集合的分配比例,然后根据键值对集合的分配比例控制各Reduce处理模块23从分区器24中获取分配比例相应数量的键值对集合;Reduce处理模块23,用于处理获取到的键值对集合,并将处理结果输出。
其中,键值对集合的总值是由键值对集合中各键值对的值累加得到的。
可选地,参见图2,其示出了本发明实施例提供的对大数据进行处理的方法所涉及的另一种实施环境的结构示意图,该实施场景下作业服务器10以一功能模块的形式设置在任务服务器20中。
实施例一
参见图3,本发明实施例提供了一种对大数据进行处理的方法,该方法的流程包括:
步骤100、任务服务器的分区器获取多个键值对集合,键值对集合包括至少一个键值对,键值对中的键和值分别为待处理的大数据中的两个子数据,且两个子数据之间存在预设数据关系,键值对集合中的各键值对中的取模余数都相同。
步骤101、任务服务器的分区器分别计算每个键值对集合中包括的各值之和,得到每个键值对集合包括的值的总值。
步骤102、作业服务器的作业跟踪器获取Reduce处理模块集合中的每个Reduce处理模块的负载情况。
步骤103、作业服务器的作业跟踪器根据每个键值对集合中包括的值的总值和每个Reduce处理模块的负载情况,分别为每个Reduce处理模块分配对应的键值对集合。
步骤104、通过任务服务器的每个Reduce处理模块分别对每个Reduce处理模块对应的键值对集合进行处理。
本实施例提供的对大数据进行处理的方法,根据各个分区中各键值对集合的总值和各Reduce处理模块的负载情况将各分区中的键值对分配到各个Reduce处理模块,相对于通常情况下根据键值对的键将各键值对分配到各Reduce任务的方式,使各Reduce处理模块的负载更加均衡。
实施例二
参见图4,本发明实施例提供了一种对大数据进行处理的方法,该方法流程包括:
步骤200、任务服务器的分区器获取多个键值对集合,键值对集合包括至少一个键值对,键值对中的键和值分别为待处理的大数据中的两个子数据,且两个子数据之间存在预设数据关系,键值对集合中的各键值对中的取模余数都相同。
其中,键和值之间存在的预设数据关系是指Map处理模块获取的对大数据的查找条件和对大数据完成查找后得到的查找结果之间的对应关系,查找条件就是键,查找结果就是值;对大数据的查找条件和大数据完成查找后得到的查找结果之间的对应关系就形成了键值对。当Map处理模块通过查找条件对大数据进行查找并得到相应的查找结果时,会以(查找条件,查找结果)的形式输出键值对。
比如:若想要在一本书中找出“华”字的数量,那么“华”字就是查找条件,而“华”字数量就是查找结果;Map处理模块就会根据这个“华”字在这本书中查找“华”字的数量,并在查找完成后,以(“华”,“华”字数量)的形式输出键值对。若想要在网页集合中找到具有包含“中华”二字的超链接的网页,那么包含“中华”二字的超链接就是查找条件,具有包含“中华”二字的超链接的网页就是查找结果,Map处理模块就会根据包含“中华”二字的超链接在网页集合中查找具有包含“中华”二字的超链接的网页,并在查找完成后,以(包含“中华”二字的超链接,具有包含“中华”二字的超链接的网页)的形式输出键值对。
具体地,步骤200的流程由步骤2001至步骤2003具体描述:
步骤2001、通过任务服务器的Map处理模块对大数据进行处理,得到多个键值对。
具体地,Map处理模块处理的大数据是任务服务器的拆分器将待处理的大数据分成的多个数据块。Map处理模块在接收到拆分器传输过来的多个数据块后,按照预先设定的键,在接收的每个数据块中查找是否有键的内容,并以键值对的形式得到查找结果。
例如,在搜索引擎领域,将大数据包含的各搜索结果输入;当用户要从网络的众多网页中找出具有“中华”这两个字的超链接时,在检索后找到100个具有“中华”二字的超链接的网页,这100个网页中具有包含“中华”二字的超链接有A和B,具有超链接A的网页有E、F和G,具有超链接B的网页有F、G和H,那么经过Map处理模块处理后得到的键值对就是(A,E)、(A,F)、(A,G)、(B,F)、(B,G)和(B,H)。
其中,拆分器对大数据的拆分是根据大数据的具体内容来对大数据进行的操作。比如:如果待处理的大数据是一本电子书,那么可以按照一个段落作为一个数据块的方式将电子书分成多个数据块,也可以按照一个句子作为一个数据块的方式将电子书分成多个数据块。如果大数据是某网站的主页集合,那么可以按照一个网页作为一个数据块的方式将某网站的主页集合中的网页分成多个数据块。
其中,Map处理模块将经过处理形成的键值对发送到分区器中。
步骤2002、任务服务器的分区器根据预先设置的取模系数,分别对得到的多个键值对的键进行取模操作,得到各键值对的取模余数。
具体地,任务服务器的分区器接收Map处理模块传输过来的键值对,对键值对中的键进行哈希操作,得到键对应的数字串;根据预先设置的取模系数,分区器分别对各键值对的键的数字串进行取模操作,得到各键值对的取模余数。
其中,取模系数=Reduce处理模块数量×取模因子,取模因子是预先确定的,存储在任务服务器的分区器中。
步骤2003、任务服务器的分区器将取模余数相同的多个键值对分配到一个键值对集合中,形成多个键值对集合。
其中,各个键值对集合都分别具有键值对集合标识。
通过步骤2001至步骤2003的描述,在形成键值对集合之前,根据预先设置的取模系数对得到的键值对进行取模操作,由于取模系数等于Reduce任务数量×取模因子,所以相对于通常的取模方式,可以将键值对分配到更多的键值对集合中,使得对键值对的分配更加均匀,使得Reduce处理模块集合中的各Reduce处理模块在处理键值对集合中的键值对所花费的时间更加均衡。
步骤201、任务服务器的分区器分别计算每个键值对集合中包括的各值之和,得到每个键值对集合包括的值的总值。
其中,每个键值对集合的总值的越大,说明获取该键值对集合的Reduce处理模块对该键值对集合的处理时间就越长。
其中,分区器在得到每个键值对集合的总值后,生成每个键值对集合的标识和总值的对应关系并记录到预先设置的关系列表中,然后将得到的关系列表发送到作业服务器的作业跟踪器中。
步骤202、作业服务器的作业跟踪器获取Reduce处理模块集合中的每个Reduce处理模块的负载情况。
其中,作业服务器的作业跟踪器从任务服务器的任务跟踪器中获取每个Reduce处理模块的负载情况。
其中,任务服务器的任务跟踪器中预先设置有记录Reduce处理模块集合中每个Reduce处理模块的负载情况的负载列表,任务服务器的任务跟踪器周期性获取每个Reduce处理模块的负载情况,以更新负载列表中记录的每个Reduce处理模块的负载情况。
其中,负载列表中记录有每个Reduce处理模块的标识和还未处理的键值对集合的总值的对应关系。
步骤203、作业服务器的作业跟踪器根据每个键值对集合中包括的值的总值和每个Reduce处理模块的负载情况,分别为每个Reduce处理模块分配对应的键值对集合。
具体地,步骤203的流程由步骤2031至步骤2035具体描述:
步骤2031、作业服务器的作业跟踪器确定当前键值对集合的分配次数。
其中,键值对集合的分配次数预先记录在作业服务器的作业跟踪器的分配列表中,分配列表中还记录有与分配次数对应的键值对集合的分配比例。
比如:分配列表中记录有分配次数1分配比例20%、分配次数2分配比例40%、分配次数3分配比例60%、分配次数4分配比例80%、分配次数5分配比例100%。
以上分配列表只记录了对键值对集合进行分配的一种方式,也可以采用其他的分配次数和对应的分配比例对键值对集合进行分配,这里不再一一赘述。
步骤2032、根据确定的当前键值对集合的分配次数,作业服务器的作业跟踪器找到与分配次数对应的键值对集合的分配比例,分配次数与键值对集合的分配比例的对应关系是预先设定的。
其中,根据确定的当前键值对集合的分配次数,作业服务器的作业跟踪器从预先存储的分配列表中找到与分配次数对应的键值对集合的分配比例。
步骤2033、根据得到的键值对集合的分配比例,作业服务器的作业跟踪器从多个键值对集合中获取相应数量的键值对集合。
具体地,根据得到的键值对集合的分配比例,作业服务器的作业跟踪器从接收的关系列表中获取分配比例相应数量的键值对集合的标识和总值的对应关系。
比如:分配列表中记录的当前的分配次数1,对应的分配比例是40%,那么作业跟踪器就会从当前的关系列表中获取关系列表中记录的键值对集合的标识和总值的对应关系总数的40%进行分配。例如:关系列表中记录了1000条键值对集合的标识和总值的对应关系,那么就对其中的400条进行分配。
步骤2034、根据按照分配比例获取到的每个键值对集合中包括的值的总值和每个Reduce处理模块的负载情况,作业服务器的作业跟踪器分别为每个Reduce处理模块分配对应的键值对集合。
具体地,作业服务器的作业跟踪器从负载列表中获取Reduce处理模块的标识,从关系列表中获取键值对集合的标识,根据Reduce处理模块的标识对应的负载情况和键值对集合的标识对应的总值,按照对负载较轻的Reduce处理模块分配总值较大的键值对集合的分配规则,分别为每个Reduce处理模块分配对应的键值对集合,即:将获取到的Reduce处理模块的标识和键值对集合的标识进行关联,建立键值对集合与Reduce处理模块的对应关系,然后将生成的键值对集合与Reduce处理模块的对应关系反馈给任务服务器的任务跟踪器,任务跟踪器会根据键值对集合与Reduce处理模块的对应关系控制Reduce处理模块从分区器中获取对应的键值对集合。
比如:有3个Reduce处理模块:A、B和C,A的负载是10,B的负载是20,C的负载是30;而待分配的键值对集合有3个,分别是a、b和c,a的总值是30,b的总值是40,c的总值是50;那么根据分配规则,会将键值对集合a分配给Reduce处理模块C,将键值对集合b分配给Reduce处理模块B,将键值对集合c分配给Reduce处理模块A。在分配完毕之后,Reduce处理模块A、B和C的负载都是60,使Reduce处理模块A、B和C的负载均衡。
通过步骤2034的描述,通过对负载较轻的Reduce处理模块分配总值较大的键值对集合的分配规则将键值对集合分配到每个Reduce处理模块中,保证了各Reduce处理模块的负载均衡,从而使Reduce处理模块能够尽可能同时完成所分配的任务。
步骤204、通过任务服务器中的每个Reduce处理模块分别对分配到的键值对集合进行处理。
本实施例提供的对大数据进行处理的方法,根据各个分区中各键值对集合的总值和各Reduce处理模块的负载情况将各分区中的键值对分配到各个Reduce处理模块,相对于通常情况下根据键值对的键将各键值对分配到各Reduce任务的方式,使各Reduce处理模块的负载更加均衡。
实施例三
参见图5,本发明实施例提供了一种对大数据进行处理的装置,该装置包括:
第一获取模块300、计算模块301、第二获取模块302、分配模块303和处理模块304;
具体地,第一获取模块300,用于获取多个键值对集合,键值对集合包括至少一个键值对,键值对中的键和值分别为待处理的大数据中的两个子数据,且两个子数据之间存在预设数据关系,键值对集合中的各键值对中的取模余数都相同;计算模块301,与第一获取模块300连接,用于分别计算每个键值对集合中包括的各值之和,得到每个键值对集合包括的值的总值;第二获取模块302,与计算模块301连接,用于获取Reduce处理模块集合中的每个Reduce处理模块的负载情况;分配模块303,与第二获取模块302连接,用于根据每个键值对集合中包括的值的总值和每个Reduce处理模块的负载情况,分别为每个Reduce处理模块分配对应的键值对集合;处理模块304,与分配模块303连接,用于通过每个Reduce处理模块分别对分配到的键值对集合进行处理。
本实施例提供的对大数据进行处理的方法,根据各个分区中各键值对集合的总值和各Reduce处理模块的负载情况将各分区中的键值对分配到各个Reduce处理模块,相对于通常情况下根据键值对的键将各键值对分配到各Reduce任务的方式,使各Reduce处理模块的负载更加均衡。
实施例四
参见图6,本发明实施例提供了一种对大数据进行处理的装置,该装置包括:
第一获取模块400、计算模块401、第二获取模块402、分配模块403和处理模块404;
具体地,第一获取模块400,用于获取多个键值对集合,键值对集合包括至少一个键值对,键值对中的键和值分别为待处理的大数据中的两个子数据,且两个子数据之间存在预设数据关系,键值对集合中的各键值对中的取模余数都相同;计算模块401,与第一获取模块400连接,用于分别计算每个键值对集合中包括的各值之和,得到每个键值对集合包括的值的总值;第二获取模块402,与计算模块401连接,用于获取Reduce处理模块集合中的每个Reduce处理模块的负载情况;分配模块403,与第二获取模块402连接,用于根据每个键值对集合中包括的值的总值和每个Reduce处理模块的负载情况,分别为每个Reduce处理模块分配对应的键值对集合;处理模块404,与分配模块403连接,用于通过每个Reduce处理模块分别对分配到的键值对集合进行处理。
具体地,第一获取模块401用于:
通过Map处理模块对大数据进行处理,得到多个键值对;
根据预先设置的取模系数,分别对得到的多个键值对的键进行取模操作,分别得到多个键值对的取模余数;
将取模余数相同的多个键值对分配到一个键值对集合中,形成多个键值对集合。
进一步地,取模系数=Reduce处理模块数量×取模因子,取模因子是预先确定的。
具体地,分配模块403用于:
确定当前键值对集合的分配次数;
根据确定的当前键值对集合的分配次数,找到与分配次数对应的键值对集合的分配比例,分配次数与键值对集合的分配比例的对应关系是预先设定的;
根据得到的键值对集合的分配比例,从多个键值对集合中获取相应数量的键值对集合;
根据按照分配比例获取到的每个键值对集合中包括的值的总值和每个Reduce处理模块的负载情况,分别为每个Reduce处理模块分配对应的键值对集合。
进一步地,分配模块403还用于:
按照对负载较轻的Reduce处理模块分配总值较大的键值对集合的分配规则,分别为每个Reduce处理模块分配对应的键值对集合。
本实施例提供的对大数据进行处理的方法,根据各个分区中各键值对集合的总值和各Reduce处理模块的负载情况将各分区中的键值对分配到各个Reduce处理模块,相对于通常情况下根据键值对的键将各键值对分配到各Reduce任务的方式,使各Reduce处理模块的负载更加均衡。
需要说明的是:上述实施例提供的对大数据进行处理的装置在对大数据进行处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的对大数据进行处理的装置与对大数据进行处理的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种对大数据进行处理的方法,其特征在于,所述方法包括:
获取多个键值对集合,所述键值对集合包括至少一个键值对,键值对中的键和值分别为待处理的大数据中的两个子数据,且所述两个子数据之间存在预设数据关系,所述键值对集合中的各键值对中的取模余数都相同;
分别计算每个键值对集合中包括的各值之和,得到所述每个键值对集合包括的值的总值;
获取Reduce处理模块集合中的每个Reduce处理模块的负载情况;
根据所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合;
通过所述每个Reduce处理模块分别对分配到的所述键值对集合进行处理。
2.根据权利要求1所述的对大数据进行处理的方法,其特征在于,所述获取多个键值对集合步骤包括:
通过Map处理模块对所述大数据进行处理,得到多个所述键值对;
根据预先设置的取模系数,分别对得到的多个所述键值对的键进行取模操作,分别得到多个所述键值对的取模余数;
将取模余数相同的多个所述键值对分配到一个键值对集合中,形成所述多个键值对集合。
3.根据权利要求2所述的对大数据进行处理的方法,其特征在于,所述取模系数=Reduce处理模块数量×取模因子,所述取模因子是预先确定的。
4.根据权利要求1所述的对大数据进行处理的方法,其特征在于,所述根据所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合步骤包括:
确定当前所述键值对集合的分配次数;
根据确定的当前所述键值对集合的分配次数,找到与所述分配次数对应的所述键值对集合的分配比例,所述分配次数与所述键值对集合的分配比例的对应关系是预先设定的;
根据得到的所述键值对集合的分配比例,从多个所述键值对集合中获取相应数量的所述键值对集合;
根据按照分配比例获取到的所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合。
5.根据权利要求4所述的对大数据进行处理的方法,其特征在于,所述根据按照分配比例获取到的所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合步骤包括:
按照对负载较轻的所述Reduce处理模块分配总值较大的所述键值对集合的分配规则,分别为所述每个Reduce处理模块分配对应的键值对集合。
6.一种对大数据进行处理的装置,其特征在于,所述装置包括:
第一获取模块,用于获取多个键值对集合,所述键值对集合包括至少一个键值对,键值对中的键和值分别为待处理的大数据中的两个子数据,且所述两个子数据之间存在预设数据关系,所述键值对集合中的各键值对中的取模余数都相同;
计算模块,用于分别计算每个键值对集合中包括的各值之和,得到所述每个键值对集合包括的值的总值;
第二获取模块,用于获取Reduce处理模块集合中的每个Reduce处理模块的负载情况;
分配模块,用于根据所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合;
处理模块,用于通过所述每个Reduce处理模块分别对分配到的所述键值对集合进行处理。
7.根据权利要求6所述的对大数据进行处理的装置,其特征在于,所述第一获取模块用于:
通过Map处理模块对所述大数据进行处理,得到多个所述键值对;
根据预先设置的取模系数,分别对得到的多个所述键值对的键进行取模操作,分别得到多个所述键值对的取模余数;
将取模余数相同的多个所述键值对分配到一个键值对集合中,形成所述多个键值对集合。
8.根据权利要求7所述的对大数据进行处理的装置,其特征在于,所述取模系数=Reduce处理模块数量×取模因子,所述取模因子是预先确定的。
9.根据权利要求6所述的对大数据进行处理的装置,其特征在于,所述分配模块用于:
确定当前所述键值对集合的分配次数;
根据确定的当前所述键值对集合的分配次数,找到与所述分配次数对应的所述键值对集合的分配比例,所述分配次数与所述键值对集合的分配比例的对应关系是预先设定的;
根据得到的所述键值对集合的分配比例,从多个所述键值对集合中获取相应数量的所述键值对集合;
根据按照分配比例获取到的所述每个键值对集合中包括的值的总值和所述每个Reduce处理模块的负载情况,分别为所述每个Reduce处理模块分配对应的键值对集合。
10.根据权利要求9所述的对大数据进行处理的装置,其特征在于,所述分配模块还用于:
按照对负载较轻的所述Reduce处理模块分配总值较大的所述键值对集合的分配规则,分别为所述每个Reduce处理模块分配对应的键值对集合。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836226.5A CN105786938A (zh) | 2014-12-26 | 2014-12-26 | 一种对大数据进行处理的方法和装置 |
PCT/CN2015/097179 WO2016101798A1 (zh) | 2014-12-26 | 2015-12-11 | 一种对大数据进行处理的方法和装置 |
EP15871867.6A EP3193264B1 (en) | 2014-12-26 | 2015-12-11 | Method and apparatus for processing big data |
US15/481,606 US10691669B2 (en) | 2014-12-26 | 2017-04-07 | Big-data processing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836226.5A CN105786938A (zh) | 2014-12-26 | 2014-12-26 | 一种对大数据进行处理的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105786938A true CN105786938A (zh) | 2016-07-20 |
Family
ID=56149230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410836226.5A Pending CN105786938A (zh) | 2014-12-26 | 2014-12-26 | 一种对大数据进行处理的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10691669B2 (zh) |
EP (1) | EP3193264B1 (zh) |
CN (1) | CN105786938A (zh) |
WO (1) | WO2016101798A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528712A (zh) * | 2016-10-26 | 2017-03-22 | 国云科技股份有限公司 | 一种比较一组大数据在另一组大数据中是否存在方法 |
CN109144690A (zh) * | 2018-07-06 | 2019-01-04 | 麒麟合盛网络技术股份有限公司 | 任务处理方法和装置 |
CN110275703A (zh) * | 2019-06-27 | 2019-09-24 | 浙江大搜车软件技术有限公司 | 键值对数据的赋值方法、装置、计算机设备和存储介质 |
CN113094262A (zh) * | 2021-03-29 | 2021-07-09 | 四川新网银行股份有限公司 | 一种基于数据库分库分表的生产数据进行测试的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090313635A1 (en) * | 2008-06-12 | 2009-12-17 | Yahoo! Inc. | System and/or method for balancing allocation of data among reduce processes by reallocation |
CN102662639A (zh) * | 2012-04-10 | 2012-09-12 | 南京航空航天大学 | 一种基于Mapreduce的多GPU协同计算方法 |
CN102799628A (zh) * | 2012-06-21 | 2012-11-28 | 新浪网技术(中国)有限公司 | 在key-value数据库中进行数据分区的方法和装置 |
CN102799486A (zh) * | 2012-06-18 | 2012-11-28 | 北京大学 | 一种MapReduce系统中的数据采样和划分方法 |
US20130290972A1 (en) * | 2012-04-27 | 2013-10-31 | Ludmila Cherkasova | Workload manager for mapreduce environments |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5070456A (en) * | 1989-12-27 | 1991-12-03 | International Business Machines Corporation | Method for facilitating the sorting of national language keys in a data processing system |
US20130332608A1 (en) * | 2012-06-06 | 2013-12-12 | Hitachi, Ltd. | Load balancing for distributed key-value store |
US9032416B2 (en) * | 2012-07-30 | 2015-05-12 | Oracle International Corporation | Load balancing using progressive sampling based on load balancing quality targets |
CN103853727B (zh) * | 2012-11-29 | 2018-07-31 | 深圳中兴力维技术有限公司 | 提高大数据量查询性能的方法及系统 |
CN103970604B (zh) | 2013-01-31 | 2017-05-03 | 国际商业机器公司 | 基于MapReduce架构实现图处理的方法和装置 |
US9176712B2 (en) * | 2013-03-14 | 2015-11-03 | Oracle International Corporation | Node Grouped Data Marshalling |
US9336334B2 (en) * | 2013-05-17 | 2016-05-10 | Bigobject, Inc. | Key-value pairs data processing apparatus and method |
CN103678609B (zh) * | 2013-12-16 | 2017-05-17 | 中国科学院计算机网络信息中心 | 一种基于分布式关系‑对象映射处理的大数据查询的方法 |
-
2014
- 2014-12-26 CN CN201410836226.5A patent/CN105786938A/zh active Pending
-
2015
- 2015-12-11 WO PCT/CN2015/097179 patent/WO2016101798A1/zh active Application Filing
- 2015-12-11 EP EP15871867.6A patent/EP3193264B1/en not_active Not-in-force
-
2017
- 2017-04-07 US US15/481,606 patent/US10691669B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090313635A1 (en) * | 2008-06-12 | 2009-12-17 | Yahoo! Inc. | System and/or method for balancing allocation of data among reduce processes by reallocation |
CN102662639A (zh) * | 2012-04-10 | 2012-09-12 | 南京航空航天大学 | 一种基于Mapreduce的多GPU协同计算方法 |
US20130290972A1 (en) * | 2012-04-27 | 2013-10-31 | Ludmila Cherkasova | Workload manager for mapreduce environments |
CN102799486A (zh) * | 2012-06-18 | 2012-11-28 | 北京大学 | 一种MapReduce系统中的数据采样和划分方法 |
CN102799628A (zh) * | 2012-06-21 | 2012-11-28 | 新浪网技术(中国)有限公司 | 在key-value数据库中进行数据分区的方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528712A (zh) * | 2016-10-26 | 2017-03-22 | 国云科技股份有限公司 | 一种比较一组大数据在另一组大数据中是否存在方法 |
CN109144690A (zh) * | 2018-07-06 | 2019-01-04 | 麒麟合盛网络技术股份有限公司 | 任务处理方法和装置 |
CN110275703A (zh) * | 2019-06-27 | 2019-09-24 | 浙江大搜车软件技术有限公司 | 键值对数据的赋值方法、装置、计算机设备和存储介质 |
CN110275703B (zh) * | 2019-06-27 | 2023-06-06 | 浙江大搜车软件技术有限公司 | 键值对数据的赋值方法、装置、计算机设备和存储介质 |
CN113094262A (zh) * | 2021-03-29 | 2021-07-09 | 四川新网银行股份有限公司 | 一种基于数据库分库分表的生产数据进行测试的方法 |
CN113094262B (zh) * | 2021-03-29 | 2022-10-18 | 四川新网银行股份有限公司 | 一种基于数据库分库分表的生产数据进行测试的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3193264A4 (en) | 2017-10-11 |
EP3193264B1 (en) | 2019-06-26 |
US10691669B2 (en) | 2020-06-23 |
EP3193264A1 (en) | 2017-07-19 |
WO2016101798A1 (zh) | 2016-06-30 |
US20170212923A1 (en) | 2017-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101901248B (zh) | 一种布隆过滤器的生成、更新以及查询元素方法和装置 | |
US11182365B2 (en) | Systems and methods for distributed storage of data across multiple hash tables | |
CN105677904B (zh) | 基于分布式文件系统的小文件存储方法及装置 | |
CN106294352B (zh) | 一种文件处理方法、装置和文件系统 | |
CN105786938A (zh) | 一种对大数据进行处理的方法和装置 | |
CN103282900B (zh) | 基于语言环境的索引和搜索方法 | |
CN102609446B (zh) | 一种分布式Bloom过滤系统及其使用方法 | |
EP2901344A1 (en) | System and method for flexible distributed massively parallel processing (mpp) database | |
CN104239567B (zh) | 数据仓库中的维度处理方法和装置 | |
CN103246549B (zh) | 一种数据转存的方法及系统 | |
JP2020531949A (ja) | ブロックチェーン内のデータベース・ハッシュコードの遅延更新 | |
CN110427364A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN107506310A (zh) | 一种地址查找、关键字存储方法及设备 | |
CN108829523A (zh) | 内存资源分配方法、装置、电子设备及可读存储介质 | |
US20120166412A1 (en) | Super-clustering for efficient information extraction | |
CN107038059A (zh) | 虚拟机部署方法及装置 | |
CN103077208A (zh) | 统一资源定位符匹配处理方法及装置 | |
CN104969169A (zh) | 出于卷复制的目的来标识工作量和对缓冲器定大小 | |
CN106550006A (zh) | 云服务器资源分配方法和装置 | |
CN105447151A (zh) | 访问分布式数据库的方法、数据源代理装置及应用服务器 | |
CN108427736A (zh) | 一种用于查询数据的方法 | |
CN105279029B (zh) | 一种基于作业计算资源的局部存储动态分配方法 | |
EP3107010B1 (en) | Data integration pipeline | |
CN103744882A (zh) | 一种基于键值对的目录片段表示方法及装置 | |
CN106202397A (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 |
Application publication date: 20160720 |
|
RJ01 | Rejection of invention patent application after publication |