CN107430510A - 数据处理方法、装置和系统 - Google Patents

数据处理方法、装置和系统 Download PDF

Info

Publication number
CN107430510A
CN107430510A CN201580063658.XA CN201580063658A CN107430510A CN 107430510 A CN107430510 A CN 107430510A CN 201580063658 A CN201580063658 A CN 201580063658A CN 107430510 A CN107430510 A CN 107430510A
Authority
CN
China
Prior art keywords
node
data segment
mapping
reduction
storage region
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
Application number
CN201580063658.XA
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN107430510A publication Critical patent/CN107430510A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据处理方法、装置和系统,所述方法适用的系统包括CPU池和存储池;映射节点和归约节点分别运行在CPU池中的不同CPU上;从存储池划分有对映射节点和归约节点共享的远端存储区域。所述方法中,映射节点执行映射任务,并将执行映射任务所得的数据段存储至远端存储区域;归约节点直接从远端存储区域获取由其处理的数据段,对该数据段执行归约任务。该方法省去了现有技术的部分动作,缩短了执行映射/归约任务的时间,省去的部分动作包括:映射节点将数据段通过磁盘输入/输出(I/O)写入本地磁盘,在归约节点请求该数据段时再通过磁盘输入/输出(I/O)从本地磁盘读取该数据段。

Description

数据处理方法、装置和系统 技术领域
本发明实施例涉及计算机领域,尤其涉及数据处理方法、装置和系统。
背景技术
映射/归约(Map/Reduce),是一种编程模型,用于大规模数据集的并行运算,如大于1万亿字节(英文全称Terabyte,英文简称TB)的数据集的并行运算。
在处理数据集时,将数据集划分为多个数据分片,由管理节点(master)调度工作节点(worker)来处理各个数据分片。master为空闲的worker分配映射任务(Map任务),分配到Map任务的worker成为映射节点。另外,master为空闲的其它worker分配归约任务(Reduce任务),分配到Reduce任务的worker成为归约节点;映射节点将执行Map任务的结果暂存在环形内存缓存区中,再通过磁盘输入/输出(英文全称Input/Output,英文简称I/O)将环形内存缓存区中的结果溢写到磁盘中,每次溢写得到一个溢写文件;溢写生成溢写文件的过程中,根据各个归约节点处理的键值(Key)分别对环形内存缓存区中的结果进行拆分(partition)、排序(sort)。待映射节点执行完Map任务,再读取磁盘中的溢写文件并进行合并(merge),合并成一个文件,并将合并成的文件再次写入磁盘;因此,拆分(partition)、排序(sort)和合并(merge)的过程中会多次利用磁盘I/O进行磁盘读写。映射节点执行完Map任务时通知master,master再转通知归约节点:该映射节点的身份标识;归约节点根据身份标识向该映射节点请求数据,映射节点与归约节点建立传输控制协议(英文全称Transmission Control Protocol,英文简称TCP)流,映射节点从磁盘存储的文件中读取出由该归约节点处理的数据,并通过该TCP流向该归约节点发送读取到的该数据。映射节点通过该TCP流向归约节点发送数据的过程中,映射节点需要利用磁盘I/O从磁盘读取数据,并利用网络I/O来向归约节点传输 载有该数据的TCP流,而利用磁盘I/O进行磁盘读写和利用网络I/O完成向归约节点的数据传输,非常耗时,延长了完成Map/Reduce任务的执行时间。
发明内容
有鉴于此,本发明实施例提供了一种数据处理方法、装置和系统,本申请提供了一种数据处理方法、装置和系统,可以减少执行Map/Reduce任务的执行时间。
一方面,本申请提供一种数据处理方法,所述方法适用的系统包括存储池,从存储池中划分了远端存储区域;所述方法包括:映射节点执行映射任务,并将执行映射任务所得的数据段存储至远端存储区域,归约节点直接从远端存储区域获取该数据段,对该数据段执行归约任务。此处的映射节点和归约节点可以是运行同一个中央处理器(英文全称Central Processing Unit,英文简称CPU)上,也可以是运行在不同CPU上。并且,所述CPU可能属于非解耦的计算机设备,也可能属于CPU池。
可见,本申请提供的方法省去了现有技术的部分动作,缩短了执行映射/归约任务的时间,省去的部分动作包括:映射节点将映射任务的执行结果通过磁盘I/O写入本地磁盘,在归约节点请求该执行结果时再通过磁盘I/O从本地磁盘读取该映射任务的执行结果,并通过网络I/O向归约节点发送载有该执行结果的TCP流。
在一个可能的设计中,所述方法适用的系统包括中央处理器CPU池和存储池,所述CPU池与所述存储池通信连接,具体可以通过CPU池的控制器与存储池的控制器之间的消息通信来实现所述CPU池与所述存储池的通信连接。CPU池还具有多个CPU,CPU池内的两个CPU之间的通信是通过CPU池的控制器实现。管理节点、映射节点和归约节点运行在CPU池内的不同CPU上。
映射节点为多个,此处用第一映射节点表示多个映射节点中的任一个映射节点;归约节点也为多个,此处用第一归约节点表示多个归约节点中的任一个归约节点。下面以第一映射节点和第一归约节点为例说明本申请的方法 如下。
所述第一映射节点对数据分片执行映射任务,根据所述映射任务的执行结果获取N个至少一个数据段,N为正整数。对于所述至少一个数据段中的每个数据段,一个由一个归约节点处理,并且不同数据段由不同归约节点处理,其中,第一数据段是指所述至少一个数据段中由第一归约节点处理的数据段。
获取N个至少一个数据段的一种可选实现方式,所述第一映射节点对数据分片执行完映射任务之后,再根据整个映射任务的执行结果获取N个至少一个数据段,此处对获取方式不做限定;例如将映射任务所得的执行结果以溢写文件的形式溢写到本地磁盘或者存储池,待所述第一映射节点执行完映射任务之后,再从本地磁盘或者存储池读取第一映射节点溢写的所有溢写文件,基于读取的所有溢写文件生成三个数据段(由第一归约节点执行的数据段、由第二归约节点执行的数据段、由第三归约节点执行的数据段)。
获取N个至少一个数据段的又一种可选实现方式,所述第一映射节点对数据分片执行映射任务由N个第一时间段组成,根据一个该第一时间段内的所述映射任务的执行结果获取得到一个所述至少一个数据段。
可选地,以第一数据段为例,如果期望先执行映射任务、再执行归约任务,待第一映射节点执行完映射任务并获取到N个所述至少一个数据段之后,再将N个所述至少一个数据段中的第一数据段一起同时存储至远端存储区域,生成每个第一数据段的存储消息,再统一将所有所述存储消息发送给管理节点,一个所述存储消息包括一个所述第一数据段在所述远端存储区域中的存储地址和该个所述第一数据段的数据量。管理节点再将所有所述存储消息发送至第一归约节点。
所述第一归约节点每接收到一个所述存储消息。根据该个所述存储消息携带的存储地址查找到所述远端存储区域,并将该个所述存储消息携带的存储地址作为第一数据段的首地址,从该首地址开始读取数据,直到读完该数据量(所述存储消息携带的数据量)的数据,便完成对一个第一数据段的获取。以此类推,所述第一归约节点可以读取到N个所述第一数据段。
可替代地,不针对N个第一数据段分别生成一个存储消息,替代地,采 用一个存储消息存储N个第一数据中每个第一数据段的存储地址和每个第一数据段的数据量,这样,第一映射节点仅需向管理节点发送一个存储消息。
可选地,以第一数据段为例,如果期望并行执行映射任务和归约任务,本实施例中所述第一映射节点对数据分片执行映射任务的持续时间段包含N个第一时间段;第一映射节点会根据一个该第一时间段内执行映射任务所得的溢写文件获取一个所述至少一个数据段,并且在每获取到一个至少一个数据段时便将该个所述至少一个数据段中的第一数据段存储至远端存储分区;通过管理节点通知第一映射节点读取该第一数据段。举例说明,在第M个所述第一时间段结束时,所述第一映射节点根据在第M个所述第一时间段内执行映射任务所得的执行结果获取第M个所述至少一个数据段;并且在获取到第M个所述至少一个数据段时,将第M个所述第一数据段存储至远端存储区域,生成第M个所述存储消息,向所述管理节点发送第M个所述存储消息。
第一归约节点每读取一个所述第一数据段,便基于对先前的所述第一数据段执行归约任务所得的执行结果,对当前读取的一个所述第一数据段继续执行归约任务,直到对N个所述第一数据段执行完归约任务。
在一个可能的设计中,所述远端存储区域的个数大于或者等于所述归约节点的个数。所述至少一个归约节点中的每个规约节点均具有与之相对应的一个所述远端存储区域。与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段。
此可选设计中,不论是先执行完映射任务再执行归约任务,还是映射任务和归约任务并行执行,所述第一映射节点将所述第一数据段存储至与所述第一归约节点对应的一个所述远端存储区域,相应地,第一归约节点从与所述第一归约节点对应的一个所述远端存储区域读取第一数据段。
在一个可能的设计中,所述远端存储区域的个数大于或者等于所述映射节点的个数。所述至少一个映射节点中的每个映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点获取的所述至少一个数据段。
此可选设计中,不论是先执行完映射任务再执行归约任务,还是映射任 务和归约任务并行执行,所述第一映射节点将所述第一数据段存储至与所述第一映射节点对应的一个所述远端存储区域,相应地,第一归约节点从与所述第一映射节点对应的一个所述远端存储区域读取第一数据段。
在一个可能的设计中,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共享。
此可选设计中,所述第一映射节点将所述第一数据段存储至被所述第一映射节点和所述第一归约节点共享的所述远端存储区域,相应地,第一归约节点从被所述第一映射节点和所述第一归约节点共享的所述远端存储区域读取第一数据段。
在一个可能的设计中,存储池具体为内存池,相对于现有技术,映射节点和归约节点向远端存储区域(属于存储池)读/写数据的速度快于向本地磁盘读/写数据的速度,进一步缩短了执行映射/归约任务的时间。
又一方面,本申请提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述处理器与存储器总线连接,所述存储器用于存储计算机指令,当所述计算机设备运行时,所述处理器执行所述存储器存储的所述计算机指令,以使所述计算机设备执行上述的数据处理方法及上述的各个可能设计。
又一方面,本申请提供了一种数据处理装置,所适用的系统与上述方法所适用的系统相同。所述装置用于实现第一映射节点,所述装置包括划分单元和发送单元。
划分单元,用于对数据分片执行映射任务,根据所述映射任务的执行结果获取N个至少一个数据段,N为正整数,所述至少一个数据段中的每个数据段由一个与之相对应的归约节点处理,其中,所述至少一个数据段包括第一数据段,所述第一数据段是指由所述第一归约节点处理的数据段,第M个所述至少一个数据段包含第M个所述第一数据段,M为小于或等于N的正整数。
发送单元,用于将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,向所述管理节点发送N个所述存储消息,其中,第M个所述存储消息包括第M个所述第一数据段在所述远端存储区域中的存储地址和第M个所述第一数据段的数据量。
在一个可能的设计中,所述第一映射节点对数据分片执行映射任务的持续时间段包含N个第一时间段;
所述划分单元,用于对数据分片执行映射任务,根据所述映射任务的执行结果获取N个所述至少一个数据段,具体包括:所述划分单元,用于在第M个所述第一时间段结束时,根据在第M个所述第一时间段内执行映射任务所得的执行结果获取第M个所述至少一个数据段。
在一个可能的设计中,所述发送单元,用于将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,向所述管理节点发送N个所述存储消息,具体包括:
所述发送单元,用于在获取到第M个所述至少一个数据段时,将第M个所述第一数据段存储至远端存储区域,生成第M个所述存储消息,向所述管理节点发送第M个所述存储消息。
在一个可能的设计中,所述至少一个归约节点中的每个规约节点均具有与之相对应的一个所述远端存储区域;与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段;
所述发送单元,用于将所述第一数据段存储至远端存储区域,具体为:所述发送单元,用于将所述第一数据段存储至与所述第一归约节点对应的一个所述远端存储区域。
在一个可能的设计中,所述至少一个映射节点中的每个映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点获取的所述至少一个数据段;
所述发送单元,用于将所述第一数据段存储至远端存储区域,具体为:所述发送单元,用于将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点将所述第一数据段存储至与所述第一映射节点对应的一个所述远端存储区域。
在一个可能的设计中,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共享;
所述发送单元,用于将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点将所述第一数据段存储至被所述第一映射节点和所述第一归约节点共享的所述远端存储区域。
在一个可能的设计中,所述存储池为内存池。
又一方面,本申请提供了一种数据处理装置,所适用的系统与上述方法所适用的系统相同。所述装置用于实现第一归约节点,所述装置包括接收单元、获取单元和执行单元。
接收单元,用于接收所述管理节点发送的存储消息,所述存储消息携带有第一数据段在远端存储区域中的存储地址和所述第一数据段的数据量,其中,所述第一数据段是指所述第一映射节点获取到的至少一个数据段中由所述第一归约节点处理的数据段;
获取单元,用于根据所述存储消息携带的所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段;
执行单元,用于对所述第一数据段执行归约任务。
在一个可能的设计中,所述至少一个归约节点中的每个规约节点均具有与之相对应的一个所述远端存储区域;与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段;
所述获取单元,用于根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述获取单元,用于根据所述存储地址确定与所述第一归约节点对应的一个所述远端存储区域,以及在与所述第一归约节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
在一个可能的设计中,所述至少一个映射节点中的每个映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点根据其执行映射任务所得的执行结果获取到的所述至少一个数据段;
所述获取单元,用于根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述获取单元,用于根据所述存储地 址确定与所述第一映射节点对应的一个所述远端存储区域,以及在与所述第一映射节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
在一个可能的设计中,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共享;
所述获取单元,用于根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述获取单元,用于根据所述存储地址确定对所述第一映射节点和所述第一归约节点共享的所述远端存储区域,以及在对所述第一映射节点和所述第一归约节点共享的所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
在一个可能的设计中,所述存储池为内存池。
又一方面,本申请提供了一种系统,所述系统为所述方法适用的系统,也为上述装置所适用的系统;所述系统包括内存池、上述第一映射节点和上述第一归约节点。相较于现有技术,映射节点利用存储池中的远端存储区域存储映射任务的执行结果,归约节点可直接从该内存分区读取该映射任务的执行结果,减少了执行Map/Reduce任务的执行时间。
附图说明
图1为硬件解耦场景的系统结构示意图;
图2为执行Map/Reduce任务的一种示范性流程图;
图3为执行Map/Reduce任务的一种示范性流程图;
图4为执行Map/Reduce任务的一种示范性流程图;
图5为从映射节点角度描述数据处理方法的一种基础流程图;
图6从归约节点角度描述数据处理方法的一种基础流程图;
图7为可用作映射节点的数据处理装置700的一种逻辑结构示意图;
图8为可用作归约节点的数据处理装置800的一种逻辑结构示意图;
图9为计算机设备900的一种硬件架构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,对多个计算机设备包括的中央处理器(英文全称Central Processing Unit,英文简称CPU)、存储介质和输入/输出(英文全称Input/Output,英文简称I/O)设备解耦,由解耦后的存储介质组成一个或多个存储池103(图1示意为1个存储池103),由解耦后的CPU组成一个或多个CPU池(图1示意为CPU池101和CPU池102),由解耦后的I/O设备组成一个或多个I/O池104(图1示意为1个I/O池104)。
存储介质,包括内存(英文全称Memory,英文简称Mem)、移动硬盘、只读存储器(英文全称:Read-Only Memory,简称ROM)、随机存取存储器(英文全称:Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。一个计算机设备可能具有一种或多种存储介质,不同计算机设备具有的存储介质可能不同,因此在通常情况下,存储池103包含的存储介质不止一种类型。
可选地,为了提高数据读写效率,仅由解耦后的内存(英文全称Memory,英文简称Mem)组成存储池103,这样的存储池103实际上是内存池。
计算机设备包括的CPU可以是轻核(如部分仅支持单线程的ARM系列处理器),可以是MIC(英文全称Many Integrated Core)架构的众核,还可能是其它具有数据处理能的核。一个计算机设备可能具有一种或多种类型的核,不同计算机设备具有的核可能不同,相应地,CPU池具有的CPU可能是一种或多种类型,例如:轻核、MIC。
可选地,计算机设备中存在未解耦到存储池103的本地内存(图1未示意),CPU池中与该本地内存连接的CPU(通常与该本地内存配置在同一计算机设备中)可以访问,具体是通过内存总线访问;但CPU池中未与该本地内 存连接的CPU不能访问该本地内存。
计算机设备可能具有一种或多种I/O设备,例如磁盘I/O、网络I/O或者其它I/O设备。相应地,该I/O池104包括的I/O设备可能为一种或多种类型。
如图1所示,CPU池连接的控制器,存储池103连接的控制器,I/O池104连接的控制器,通过高速互联通道通信连接,该高速互联通道可选地为利用硅光搭建的光通道;当然,各控制器之间也可以通过其它介质或网络实现各个控制器的通信连接,在此不应构成对本发明的限定。各个控制器之间通信连接的情况下,各个组件(CPU池中的CPU、存储池103中的内存、I/O池104中的I/O)可以通过控制器之间的消息交互实现组件之间的消息交互。
与CPU池连接的控制器,控制CPU资源的分配,和对CPU资源进行调度,以便与其它CPU、内存、I/O设备协同工作,完成系统分配的任务。CPU池可能是一个或多个,如1示意为CPU池101和CPU池102;CPU池内的各个CPU之间通过共同的控制器进行消息通信;不同CPU池中的CPU,需利用各自的控制器之间的消息通信能力,通过控制器之间的消息通信实现相互(不同CPU池中的CPU)的消息通信;例如,CPU池101内的CPU与CPU池102内的CPU进行消息通信的具体实现是:CPU池101内的CPU首先将消息发送至CPU池101的控制器,CPU池101的控制器将该消息转发至CPU池102的控制器,CPU池102的控制器再将该消息发送至CPU池102的CPU。
与I/O池104连接的控制器,控制I/O资源的分配,和对I/O资源进行调度。一个举例,CPU池中的CPU触发载有I/O访问请求的消息,并通过CPU池连接的控制器发送该消息至I/O池104连接的控制器;I/O池104连接的控制器,根据该I/O访问请求从I/O池104分配I/O,通过分配的I/O访问外部设备,例如向外部设备发送指令,再例如从外部设备获取数据。又一个举例,I/O池104连接的控制器,可以根据CPU池中的CPU的请求分配I/O,并基于与存储池103连接的控制器的消息通信,将存储池103中存储的数据通过分配的I/O向外部设备输出,和/或将从分配的I/O获取的外部设备的数据写入该存储池103的存储介质中。
与存储池103连接的控制器,用于管理该存储资源,包括分配存储池103 中的存储资源、为分配的存储资源设置访问权限。本实施例中,存储池103的控制器,从该存储池103中划分出对CPU池中多个CPU(包括运行有映射节点的CPU和运行有归约节点的CPU)共享的远端存储区域;可选地,远端存储区域具有的存储地址是连续的,这样可以提高访问远端存储区域来读写数据段的速度;可选地,这里的存储地址可以是指物理地址;可选地,这里的存储地址可以是指逻辑地址。该CPU访问该远端存储区域的实现方式为:该CPU向CPU池的控制器发送载有访问请求的消息,基于存储池103连接的控制器与CPU池的控制器之间的消息通信,存储池103的控制器接收到该载有访问请求的消息并对该访问请求指定的远端存储区域进行访问。可见,CPU访问远端存储区域的实现方式与访问本地内存的实现方式不同,CPU池中的多个CPU可能可以访问同一个远端存储区域,而本地内存仅供与本地内存连接的本地CPU访问,并且本地CPU通常是通过内存总线直接访问本地内存。
存储池103的控制器可以为CPU池中多个CPU设置访问该远端存储区域的访问权限,可以设置的访问权限为以下任一种:只读权限、只写权限、可读可写权限或者其他权限。如果存储池103的控制器为某个CPU设置了该远端存储区域的只读权限,该个CPU可以通过存储池103的控制器以只读权限访问该远端存储区域,进而可以从该远端存储区域读取数据。如果存储池103的控制器为某个CPU设置的是该远端存储区域的只写权限,该个CPU可以通过存储池103的控制器以只写权限访问该远端存储区域,进而可以向该远端存储区域写入数据。如果存储池103的控制器为某个CPU设置的是该远端存储区域的可读可写权限,该个CPU可以通过存储池103的控制器以可读可写权限访问该远端存储区域,既可以从该远端存储区域读取数据,还可以向该远端存储区域写入数据。
具体在本发明实施例中,从存储池103中划分出的远端存储区域,供执行映射/归约(Map/Reduce)任务使用;映射节点和归约节点运行在CPU池中的不同CPU上,映射节点利用该远端存储区域存储映射任务的执行结果,归约节点可直接从该远端存储区域读取映射任务的执行结果,对该映射任务的执行结果执行归约任务,省去了现有技术的部分动作,缩短了执行映射/归约任务的时间,省去的部分动作包括:映射节点将映射任务的执行结果通过磁 盘I/O写入本地磁盘,在归约节点请求该执行结果时再通过磁盘I/O从本地磁盘读取该映射任务的执行结果,并通过网络I/O向归约节点发送载有该执行结果的TCP流。如果存储池103具体为内存池,相对于现有技术,映射节点和归约节点向远端存储区域(属于存储池103)读/写数据的速度快于访问本地磁盘来读/写数据的速度,进一步缩短了执行映射/归约任务的时间。
本发明实施例基于如图1所示的架构,为在该架构上执行映射/归约任务,首先需要做如下动作:
第一个动作,从CPU池中确定一个CPU,用于运行实现管理节点(master)的进程。从CPU池中确定至少两个CPU,用于运行实现多个工作节点(worker)的进程。
第二个动作,管理节点为某个空闲的工作节点分配映射任务,执行映射任务的工作节点成为映射节点,映射节点不属于空闲的工作节点。管理节点为某个空闲的工作节点分配归约任务,执行归约任务的工作节点成为归约节点,归约节点不属于空闲的工作节点。可见,映射节点与归约节点为不同的节点。
本实施例适用的场景中,映射节点与归约节点是运行在不同CPU上的。多个映射节点可以运行在一个或多个CPU上;如果多个映射节点运行在同一个CPU上,该多个映射节点是作为线程运行的;如果多个映射节点运行各自运行在不同CPU上,该多个映射节点是作为进程运行的。类似地,多个归约节点可以运行在一个或多个CPU上;如果多个归约节点运行在同一个CPU上,该多个归约节点是作为线程运行的;如果多个归约节点运行各自运行在不同CPU上,该多个归约节点是作为进程运行的。可选地,管理节点可以与映射节点运行在相同的CPU上,或者管理节点可以与归约节点运行在相同CPU上,或者管理节点、映射节点和归约节点分别运行在不同CPU上。
第三个动作,管理节点通过消息通信向存储池103的控制器申请可共享的远端存储区域;存储池103的控制器响应该申请,并划分了远端存储区域,存储池103的控制器通过消息通信向该管理节点反馈:该远端存储区域包含的存储地址、访问该远端存储区域的访问权限。管理节点再通知映射节点:该远端存储区域包含的存储地址,为该映射节点申请到的访问权限。管理节点再通知归约节点:该远端存储区域包含的存储地址,为该归约节点申请到 的访问权限。
第四个动作,本实施例是对数据集执行映射/归约任务,在执行映射任务(Map任务)之前,将数据集划分成一个或多个数据分片,可选地,具体划分规则可以根据任务需要和/或执行效率确定,例如将数据集按照16MB到64MB范围内的一个值或多个值进行数据分片的划分,在此不作为对本发明的限定。本实施例将一个数据分片作为一个映射节点的输入,使得映射节点对输入的数据分片执行映射任务。
基于如图1所示的架构,实施例一、实施例二和实施例三讲解在该架构上执行映射/归约任务的方法;实施例四对实施例一、实施例二和实施例三进行扩展,从映射节点角度讲解在该架构上提供的数据处理方法;实施例五对实施例一、实施例二和实施例三进行扩展,从归约节点角度讲解在该架构上提供的数据处理方法;实施例六从映射节点角度讲解与实施例四提供的方法对应的数据处理装置;实施例七从归约节点角度讲解与实施例五提供的方法对应的数据处理装置;实施例八讲解可执行实施例四和实施例五提供的数据处理方法的计算机设备;实施例九讲解在在该架构上组建的系统。
实施例一
下面结合图2,详述下引入远端存储区域的情况下执行Map/Reduce任务的一种具体流程,该流程包括以下步骤:步骤S201、步骤S202、步骤S203和步骤S204。
为便于说明,本实施例以将数据集划分成两个数据分片(参见图2)为例对执行Map/Reduce任务的流程进行描述,因此根据数据集划分出的数据分片为两个仅是示意,不作为对实施例的限定。如图2所示,一个数据分片由第一映射节点处理,另一个数据分片由第二映射节点处理。本实施例中,管理节点分配了三个归约任务,一个归约任务由一个归约节点处理,因此总共有三个归约节点,包括第一归约节点、第二归约节点和第三归约节点,图2示出了第一归约节点,图2未示第二归约节点和第三归约节点。
需说明的是,管理节点在确定两个映射节点和三个归约节点后,会将三个归约节点的标识、以及三个归约节点各自针对的键值(Key)通知两个映射节点。
参见图2,管理节点从内存池的控制器申请到2个远端存储区域,包括远端存储区域211和远端存储区域212。管理节点将这2个远端存储区域分配给两个映射节点和三个归约节点的具体规则如下:
对第一映射节点共享远端存储区域211,并为第一映射节点分配了远端存储区域211的可读可写权限;
对第二映射节点共享远端存储区域212,并为第二映射节点分配了远端存储区域212的可读可写权限;
对第一归约节点、第二归约节点和第三归约节点均共享远端存储区域211,并为第一归约节点、第二归约节点和第三归约节点分别分配了远端存储区域211的可读权限;
对第一归约节点、第二归约节点和第三归约节点均共享远端存储区域212,并为第一归约节点、第二归约节点和第三归约节点分别分配了远端存储区域212的可读权限。
远端存储区域211具有的存储地址是连续的;第一映射节点向远端存储区域211写入数据段时,是向远端存储区域211中的连续存储地址写入数据段,相对于向非连续的存储地址写入数据,能够提高了数据写入速度。
远端存储区域212具有的存储地址也是连续的;第二映射节点向远端存储区域212写入数据段时,是向远端存储区域212中的连续存储地址写入数据段,相对于向非连续的存储地址写入数据,能够提高了数据写入速度。可选地,第一映射节点、第一归约节点、第二归约节点和第三归约节点可以同时从远端存储区域211读取数据;但第一映射节点向远端存储区域211中的部分存储地址写入数据时,第一归约节点、第二归约节点和第三归约节点不能从该部分存储地址读取数据。类似地,第二映射节点、第一归约节点、第二归约节点和第三归约节点可以同时从远端存储区域212读取数据;但第二映射节点向远端存储区域212中的部分存储地址写入数据时,第一归约节点、第二归约节点和第三归约节点不能从该部分存储地址读取数据。
下面主要从第一映射节点和第一归约节点的角度解释本实施例执行Map/Reduce任务的具体流程。
步骤S201,第一映射节点对输入的数据分片执行Map任务。第一映射节 点执行Map任务的过程中,按照时间顺序将执行Map任务所得的执行结果依次写入内存缓冲池中的环形内存缓冲区,再将环形内存缓冲区中的该执行结果溢写到本地磁盘或者存储池中,图2仅示意了溢写到存储池中,每次溢写得到一个溢写文件。其中,具体的溢写过程是:将环形内存缓冲区中本次期望溢写的所述执行结果根据Reduce任务针对的键值(Key)进行拆分(Partition),拆分得到3个(等于归约节点的个数)数据片段,此处是以每次得到的所述执行结果都具有每个归约节点所针对的键值(Key)为例,当然,如果某次得到的所述执行结果不具有某个归约节点所针对的键值(Key),则不会拆分得到该个reduce节点对应的数据片段,这时拆分得到数据片段的个数少于3个;然后再根据键值(Key)对3个数据片段各自进行排序(sort),将3个排序后的数据片段以一个溢写文件的形式溢写到本地磁盘或者存储池中。可见,每次溢写得到的溢写文件,均包含3个已排序的数据片段。
步骤S202,第一映射节点执行Map任务的过程中,会持续向本地磁盘或者存储池存储溢写文件。每间隔第一时间段(该第一时间段的时间长度可修改),第一映射节点从本地磁盘或者存储池获取一次溢写文件,因此每次仅能从本地磁盘或者存储池获取到一个第一时间段内的所有溢写文件,该所有溢写文件包括在该个第一时间段内的不同时间点分别溢写所得的溢写文件。
具体地,假设第一映射节点对数据分片执行映射任务的持续时间段包含N个第一时间段,因此第一映射节点对数据分片执行映射任务的持续时间段至少包含1个第一时间段,当然,如果第一映射节点对数据分片执行映射任务的持续时间越长,N的数值越大;本实施例中,N为正整数。M为小于或等于N的正整数,下面以第M个第一时间段为例讲解下第一映射节点从本地磁盘或者存储池获取一次溢写文件:在第M个所述第一时间段结束时,第一映射节点从本地磁盘或者存储池获取一次溢写文件,从本地磁盘或者存储池获取第M个所述第一时间段内的所有溢写文件。
下面以第M个第一时间段为例讲解下第一映射节点根据第M个第一时间段内的溢写文件获取一次3个数据段(3个归约节点各自处理的数据段)。基于第M个所述第一时间段内的所有溢写文件,第一映射节点从每个溢写文件中获取3个归约节点各自处理的已排序的数据片段。再对具有单个归约节 点针对的键值(Key)的所有已排序的数据片段进行排序(sort)、合并(merge),得到该单个归约节点处理的数据段;以此类推,第一映射节点可以基于所有溢写文件中的已排序的数据片段,分别排序、合并得到3个归约节点各自处理的数据段。举例说明,第一映射节点获取到第M个所述第一时间段内的所有内溢写文件后,根据第一归约节点针对的键值(Key),从每个溢写文件包含的3个已排序的数据片段中分别获取由第一归约节点处理的数据片段;再根据第一归约节点针对的键值(Key)对从每个溢写文件获取的数据片段进行排序(sort)、合并(merge),得到第M个第一数据段,该第一数据段是指由第一归约节点处理的数据段。
第一映射节点统计三个数据段各自的数据量,例如统计第一数据段所具有的数据量。
第一映射节点将这三个数据段均存储至远端存储区域211,并记录三个数据段各自在远端存储区域211中的存储地址,例如记录第一数据段在远端存储区域211中的存储地址。
第一映射节点在远端存储区域211存储该三个数据段后,生成第一存储消息,该第一存储消息包括一个地址数组和每个数据段的数据量,该三个数据段的存储地址一一对应地记录在该地址数组的三个地址变量中。可选地,已预先确定该地址数组的三个地址变量与三个归约节点(包括第一归约节点、第二归约节点和第三归约节点)的标识之间的一一映射关系;基于三个数据段所具有的键值(Key)与三个归约节点的标识之间的一一映射关系,可以确定三个地址变量与三个数据段的一一映射关系;第一映射节点基于三个地址变量与三个数据段的一一映射关系,将该三个数据段的存储地址一一对应地记录在该地址数组的三个地址变量中的。
第一映射节点向管理节点发送该第一存储消息。
本实施例中,第一映射节点执行Map任务的过程中,第一映射节点每间隔第一时间段便会生成一个所述3个数据段(包括由第一归约节点处理的第一数据段、由第二归约节点处理的数据段、由第三归约节点处理的数据段);由于第一映射节点对数据分片执行映射任务的持续时间段包含N个第一时间段,第一映射节点便会按照时间顺序生成N个所述3个数据段(包括由第一归 约节点处理的第一数据段、由第二归约节点处理的数据段、由第三归约节点处理的数据段)。按照时间顺序,第一映射节点每生成一个所述3个数据段,便会生成一个与该个所述3个数据段对应的第一存储消息,并向管理节点发送与该个所述3个数据段对应的第一存储消息。可见,如果N等于1,即第一时间段就是第一映射节点对数据分片执行映射任务的持续时间段,第一归约节点仅生成一次所述3个数据段,对应地也仅生成一次第一存储消息,向管理节点发送一次该第一存储消息;如果N大于1,即第一映射节点对数据分片执行映射任务的持续时间段包含多个第一时间段,这种情况下,第一归约节点会按照时间先后生成多个所述3个数据段,并生成每个所述3个数据段时会对应生成该个所述3个数据段对应的第一存储消息,并向管理节点该个所述3个数据段对应的第一存储消息。
步骤S203,管理节点已预先确定地址数组中的三个地址变量与三个归约节点(包括第一归约节点、第二归约节点和第三归约节点)的标识之间的一一映射关系。
管理节点每次接收第一映射节点发送的第一存储消息,根据第一存储消息的该地址数组和上述已预先确定的一一映射关系(地址数组中的三个地址变量与三个归约节点的标识之间的一一映射关系),分别生成向第一归约节点发送的第二存储消息、向第二归约节点发送的第二存储消息、向第三归约节点发送的第二存储消息;向三个归约节点(第一归约节点、第二归约节点和第三归约节点)分别发送各自对应的第二存储消息。可选地,第一归约节点每间隔特设时间主动向管理节点发送查询请求,管理节点在接收到由第一映射节点发送的第一存储消息时,响应最新的该查询请求,向第一归约节点发送与第一归约节点对应的第二存储消息(包括第一数据段的存储地址、第一数据段的数据量);第二归约节点和第三归约节点可以类似地及时从管理节点得到与其对应的第二存储消息。
其中,向第一归约节点发送的第二存储消息包含:第一数据段在远端存储区域211的存储地址和第一数据段的数据量;类似地,向第二归约节点发送的第二存储消息包含:由第二归约节点处理的数据段在远端存储区域211中的存储地址和由第二归约节点处理的数据段的数据量;类似地,向第三归约节点发 送的第二存储消息包含:由第三归约节点处理的数据段在远端存储区域211中的存储地址和由第三归约节点处理的数据段的数据量。
步骤S204,第一归约节点每次接收管理节点向第一归约节点发送的第二存储消息,根据第二存储消息中携带的第一数据段的存储地址,查找到远端存储区域211;并将第二存储消息中携带的存储地址作为第一数据段在远端存储区域211中的首地址,从该首地址开始读取第一数据段,再根据该第二存储消息携带的该第一数据段的数据量,从远端存储区域211读取到完整的第一数据段,即从远端存储区域211读取到具有该数据量的第一数据段。类似地,第二归约节点接收管理节点向第二归约节点发送的第二存储消息,根据第二存储消息从远端存储区域211读取到由第二归约节点处理的数据段。类似地,第三归约节点接收管理节点向第三归约节点发送的第二存储消息,根据第二存储消息从远端存储区域211读取到由第三归约节点处理的数据段。
类似地,第二映射节点执行Map任务的过程中,每间隔第二时间段会生成一次三个数据段,包括由第一归约节点处理的数据段、由第二归约节点处理的数据段、由第三归约节点处理的数据段;第二映射节点将这三个数据段写入远端存储区域212,并确定这三个数据段各自的存储地址、这三个数据段各自的数据量。与第一映射节点类似地,经过管理节点转通知,第一归约节点、第二归约节点、第三归约节点分别可以从第二映射节点获知:各自处理的数据段在远端存储区域212中的存储地址和每个数据段的数据量;继而,第一归约节点可以根据管理节点转通知给第一归约节点的存储地址和数据量从远端存储区域212完整读取到由第一归约节点处理的数据段,第二归约节点可以根据管理节点转通知给第二归约节点的存储地址和数据量从远端存储区域212完整读取到由第二归约节点处理的数据段,第三归约节点可以根据管理节点转通知给第三归约节点的存储地址和数据量从远端存储区域212完整读取到由第三归约节点处理的数据段。
第一归约节点对从远端存储区域211读取的第一数据段和从远端存储区域212读取的数据段执行Reduce任务。第一归约节点可以将执行Reduce任务所得的执行结果合并(merge)后写入本地的存储介质(例如磁盘),也可以将所得的执行结果合并(merge)后写入存储池;当然,也可以将所得的执行结果合并 (merge)后写入其他存储介质,此处不做限定。
类似地,待第二归约节点对从远端存储区域211和远端存储区域212分别读取由第二归约节点处理的数据段之后,第二归约节点对读取的数据段执行Reduce任务。第二归约节点可以将执行Reduce任务所得的执行结果合并(merge)后写入存储介质(例如本地磁盘、存储池)。
类似地,待第三归约节点对从远端存储区域211和远端存储区域212分别读取由第三归约节点处理的数据段之后,第三归约节点对读取的数据段执行Reduce任务。第三归约节点可以将执行Reduce任务所得的执行结果合并(merge)后写入存储介质(例如本地磁盘、存储池)。
本实施例中,第一映射节点将包含第一数据段的文件存储在远端存储区域211中,第一归约节点可直接从远端存储区域获取到由该归约节点处理的第一数据段,从而省去了现有技术中第一归约节点向第一映射节点请求第一数据段时先由第一映射节点从本次磁盘中读取第一数据段再通过TCP流向该第一归约节点发送读取的第一数据段这些步骤,本实施例中的所有映射节点和所述归约节点类似地工作,有效节省了执行Map/Reduce任务所需的时间。如果远端存储区域是从内存池划分的,相对于现有技术,映射节点和归约节点访问远端存储区域来读/写数据的速度快于向本地磁盘读/写数据的速度,进一步缩短了执行映射/归约任务的时间。
第一映射节点执行映射任务的过程中,每间隔第一时间段生成一次3个数据段(由第一归约节点处理的第一数据段、由第二归约节点处理的数据段、由第三归约节点处理的数据段),并将本次生成的第一数据段存储至远端存储区域211中的部分存储地址;第一归约节点从远端存储区域211读取本次的第一数据段并对读取的第一数据段执行归约任务,与此同时第一映射节点继续执行映射任务并生成下一次的第一数据段,第一映射节点将下一次的第一数据段存储至远端存储区域211中的其它部分存储地址;这样,第一映射节点执行映射任务和第一归约节点执行归约任务,是并行执行的。第二映射节点类似第一映射节点工作,第二归约节点、第三归约节点类似第一归约节点工作,这样可以实现两个映射节点(第一映射节点和第二映射节点)执行映射任务和三个归约节点(第一归约节点、第二归约节点和第三归约节点) 执行归约任务的并行执行,相对于现有技术先执行完映射任务再执行归约任务,能够减少Map/Reduce任务的执行时间。
再从远端存储区域角度描述下映射节点和归约节点并行工作的原理,如下:第一映射节点、第一归约节点、第二归约节点和第三归约节点可以同时访问远端存储区域211;第一映射节点向远端存储区域211中的部分存储地址写入本次的数据段的同时,第一归约节点、第二归约节点和第三归约节点可以分别从远端存储区域211中的其他部分存储地址读取各自处理的上一次的数据段,例如,第一映射节点向远端存储区域211中的部分存储地址写入本次的第一数据段的同时,第一归约节点可以从远端存储区域211中的其他部分存储地址读取上一次的第一数据段;这样实现第一映射节点执行映射任务与三个归约节点(第一归约节点、第二归约节点和第三归约节点)执行归约任务的并行。类似地,第二映射节点、第一归约节点、第二归约节点和第三归约节点可以同时访问远端存储区域212,第二映射节点向远端存储区域212中的部分存储地址写入本次的数据段的同时,第一归约节点、第二归约节点和第三归约节点可以分别从远端存储区域212中的其他部分存储地址读取各自处理的上一次的数据段;这样实现第二映射节点执行映射任务与三个归约节点(第一归约节点、第二归约节点和第三归约节点)执行归约任务的并行。综上,第一映射节点和第二映射节点各自执行映射任务并向各自的远端存储区域(远端存储区域211和远端存储区域212)写入数据段的同时,三个归约节点(第一归约节点、第二归约节点和第三归约节点)会分别从两个远端存储区域(远端存储区域211和远端存储区域212)读取由其处理的数据段,三个归约节点各自对各自读取的数据段执行归约任务,实现映射节点(第一映射节点和第二映射节点)执行映射任务与归约节点(第一归约节点、第二归约节点和第三归约节点)执行归约任务的并行。
本实施例中,远端存储区域211具有的存储地址是连续的;这样,第一映射节点向远端存储区域211写入数据段时,是向远端存储区域211中的连续存储地址写入数据段。类似地,远端存储区域212所具有的存储地址是连续的;这样,第二映射节点向远端存储区域212写入数据段时,是向远端存储区域212中的连续存储地址写入数据段。相对于映射节点来说,三个归约 节点需从两个远端存储区域(远端存储区域211和远端存储区域212)分开读取由其处理的数据段,因此归约节点不是从连续存储地址读取由其处理的所有数据段,相对于映射节点向远端存储区域写入数据段,归约节点读取数据段的速度相对较慢。因此,本实施例适用于映射任务的负荷大于归约任务的负荷的场景,还适用于映射节点的个数大于归约节点的个数的场景。
实施例二
本实施例中,数据集是采用Hadoop分布式文件系统(Hadoop Distributed File System,简称HDFS)存储和管理的;因此,本实施例将数据集划分成的两个数据分片,图3示意为数据分片301和数据分片302,也存储在HDFS中。应知,根据数据集划分出的数据分片为两个仅是示意,划分出的数据分片可以是一个或多个,因此数据分片的个数不作为对实施例的限定。
管理节点(图3未示出)从空闲的工作节点中确定了两个映射节点,如图3示意为第一映射节点和第二映射节点,由第一映射节点对数据分片301执行Map任务,由第二映射节点对数据分片302执行Map任务;另外,管理节点从空闲的工作节点中确定了三个归约节点,如图3示意为第一归约节点、第二归约节点和第三归约节点;管理节点在确定这两个映射节点和这三个归约节点后,会将这三个归约节点的标识、以及这三个归约节点各自针对的键值(Key)通知这两个映射节点。
与实施例一不同的是,实施例一是为便利映射节点写数据段而分配远端存储区域;具体地,远端存储区域具有的存储地址是连续的,映射节点将各个归约节点处理的数据段写入远端存储区域中的连续存储地址,但归约节点需要从不同远端存储区域读取由其处理的数据段。然而实施例二是为便利归约节点而分配远端存储区域;具体地,远端存储区域具有的存储地址是连续的,映射节点需要将各个归约节点处理的数据段写入与归约节点对应的远端存储区域中,相应地,归约节点从一个远端存储区域便可读取到由其处理的所有数据段;例如,存储池的控制器为第一归约节点分配的远端存储区域311所具有的存储地址是连续的,第一映射节点将由第一归约节点处理的数据段 写入远端存储区域311中的部分存储地址,第二映射节点将由第一归约节点处理的数据段也写入远端存储区域311中的其它部分存储地址,第一归约节点从远端存储区域311便可直接读取到由第一归约节点处理的所有数据段。
参见图3,实施例二中,远端存储区域311是被共享给第一归约节点和两个映射节点(第一映射节点和第二映射节点)的;远端存储区域312是被共享给第二归约节点和两个映射节点(第一映射节点和第二映射节点)的;远端存储区域313是被共享给第三归约节点和第一映射节点和第二映射节点的。
实施例二执行Map/Reduce任务的流程实现与实施例一执行Map/Reduce任务的流程实现类似,例如以下步骤均是类似实现方式:映射节点对执行Map任务的步骤,映射节点每间隔第一时间段溢写得到一次溢写文件的步骤,映射节点根据间隔时间内的溢写文件合并得到数据段的步骤,管理节点从映射节点获知数据段的存储地址和数据量的步骤,以及归约节点执行Reduce任务的步骤;在此不再赘述这些类似实现的步骤;在此不再赘述类似实现部分。
相较于实施例一执行Map/Reduce任务的流程,实施例二执行Map/Reduce任务的流程存在以下三个不同点。
第一个不同点,管理预先通知第一映射节点:远端存储区域311中第一映射节点可访问的部分存储地址,远端存储区域312中第一映射节点可访问的部分存储地址,远端存储区域313中第一映射节点可访问的部分存储地址。第一映射节点基于溢写文件(当前的一个所述第一时间段内的所有溢写文件)合并(merge)得到由第一归约节点处理的第一数据段、由第二归约节点处理的数据段、由第三归约节点处理的数据段之后,第一映射节点向远端存储区域311中第一映射节点可访问的部分存储地址写入第一数据段,第一映射节点向远端存储区域312中第一映射节点可访问的部分存储地址写入由第二归约节点处理的数据段,第一映射节点向远端存储区域313中第一映射节点可访问的部分存储地址写入由第三归约节点处理的数据段。
类似地,管理预先通知第二映射节点:远端存储区域311中第二映射节点可访问的部分存储地址,远端存储区域312中第二映射节点可访问的部分存储地址,远端存储区域313中第二映射节点可访问的部分存储地址。第二 映射节点基于溢写文件(当前的一个所述第一时间段内的所有溢写文件)合并(merge)得到由第一归约节点处理的第一数据段、由第二归约节点处理的数据段、由第三归约节点处理的数据段之后,第二映射节点向远端存储区域311中第二映射节点可访问的部分存储地址写入第一数据段,第二映射节点向远端存储区域312中第二映射节点可访问的部分存储地址写入由第二归约节点处理的数据段,第二映射节点向远端存储区域313中第二映射节点可访问的部分存储地址写入由第三归约节点处理的数据段。
第二个不同点,第一归约节点直接从远端存储区域311读取到由第一归约节点处理的所有数据段,整个读取过程不需要访问其他远端存储区域,提高了第一归约节点读取数据的效率。
类似地,第二归约节点直接从远端存储区域312读取到由第二归约节点处理的所有数据段,整个读取过程不需要访问其他远端存储区域,提高了第二归约节点读取数据的效率。
类似地,第三归约节点直接从远端存储区域313读取到由第三归约节点处理的所有数据段,整个读取过程不需要访问其他远端存储区域,提高了第三归约节点读取数据的效率。
第三个不同点,归约节点执行归约任务所得的执行结果可以存储至HDFS中。第一归约节点将对数据段执行Reduce任务所得的执行结果,以文件331的形式存储到HDFS中。第二归约节点将对数据段执行Reduce任务所得的执行结果,以文件332的形式存储到HDFS中。第三归约节点将对数据段执行Reduce任务所得的执行结果,以文件333的形式存储到HDFS中。
实施例二与实施例一的类似效果是:省去了现有技术中归约节点向映射节点请求数据段时先由该映射节点从本次磁盘中读取该数据段再通过TCP流向该归约节点发送读取的数据段这些步骤,有效节省了执行Map/Reduce任务所需的时间。
实施例二区别与实施例一的有益效果是:实施例二是为便利归约节点而分配远端存储区域,该远端存储区域具有的存储地址是连续的。各个映射节点均将由同一归约节点处理的数据段存储在同一远端存储区域,该同一归约节点可以从该同一远端存储区域便可读取到由该同一归约节点处理的所有数据 段,提高了读取由该同一归约节点处理的所有数据段的速度。相对于归约节点来说,两个映射节点均需要向远端存储区域311写入由第一归约节点处理的数据段、向远端存储区域312写入由第二归约节点处理的数据段、向远端存储区域313写入由第三归约节点处理的数据段;因此相较于映射节点不是向单个远端存储区域写入所有数据段,第一归约节点可以从远端存储区域311读取到由第一归约节点处理的所有数据段,第二归约节点可以从远端存储区域312读取到由第二归约节点处理的所有数据段,第三归约节点可以从远端存储区域313读取到由第三归约节点处理的所有数据段,归约节点读取数据段的速度相对较快。因此,本实施例适用于归约任务的负荷大于映射任务的负荷的场景,还适用于归约节点的个数大于映射节点的个数的场景。
实施例三
本实施例中,数据集是采用Hadoop分布式文件系统(Hadoop Distributed File System,简称HDFS)存储和管理的;因此,本实施例将数据集划分成的两个数据分片,图4示意为数据分片401和数据分片402,也存储在HDFS中。应知,根据数据集划分出的数据分片为两个仅是示意,划分出的数据分片可以是一个或多个,因此数据分片的个数不作为对实施例的限定。
管理节点(图4未示出)从空闲的工作节点中确定了两个映射节点,如图4示意为第一映射节点和第二映射节点,由第一映射节点对数据分片401执行Map任务,由第二映射节点对数据分片402执行Map任务;另外,管理节点从空闲的工作节点中确定了三个归约节点,如图4示意为第一归约节点、第二归约节点和第三归约节点;管理节点在确定这两个映射节点和这三个归约节点后,会将这三个归约节点的标识、以及这三个归约节点各自针对的键值(Key)通知这两个映射节点。
与实施例一不同的是,实施例一是为便利映射节点写数据段而分配远端存储区域;具体地,远端存储区域具有的存储地址是连续的,映射节点将各个归约节点处理的数据段写入远端存储区域中的连续存储地址,但归约节点需要从不同远端存储区域读取由其处理的数据段。然而实施例三是为兼顾映射节点的负荷和归约节点的负荷而分配远端存储区域,该远端存储区域具有 的存储地址是连续的;一个映射节点每次生成的由同一个归约节点处理的数据段均存储在同一远端存储区域;例如,第一映射节点每次生成的由第一归约节点处理的第一数据段均存储至远端存储区域421,第一归约节点从远端存储区域421的连续存储地址读取第一数据段;类似地,一个映射节点与一个归约节点共享一个远端存储区域,该个远端存储区域用于存储该个映射节点生成的由该个归约节点处理的数据段,同时兼顾了:映射节点向各个远端存储区域写入数据段的写入速度,和归约节点从各个远端存储区域读取数据段的读取速度。
参见图4,实施例三中,远端存储区域421是被共享给第一映射节点和第一归约节点;远端存储区域422是被共享给第一映射节点和第二归约节点;远端存储区域423是被共享给第一映射节点和第三归约节点;远端存储区域424是被共享给第二映射节点和第一归约节点;远端存储区域425是被共享给第二映射节点和第二归约节点;远端存储区域426是被共享给第二映射节点和第三归约节点。
实施例三执行Map/Reduce任务的具体流程与实施例一执行Map/Reduce任务的流程相比,以下步骤均类似:映射节点对执行Map任务的步骤,映射节点每间隔第一时间段溢写得到一次溢写文件的步骤,映射节点根据间隔时间内的溢写文件合并得到数据段的步骤,管理节点从映射节点获知数据段的存储地址和数据量的步骤,以及归约节点执行Reduce任务的步骤;在此不再赘述这些类似实现的步骤。
实施例三执行Map/Reduce任务的具体流程与实施例一执行Map/Reduce任务的流程相比,存在以下三个不同点。
第一个不同点,第一映射节点均将由第一归约节点处理的第一数据段存储至远端存储区域411;类似地,第一映射节点将由第二归约节点处理的数据段存储至远端存储区域412;将由第三归约节点处理的数据段存储至远端存储区域413;类似地,第二映射节点将由第一归约节点处理的数据段存储至远端存储区域414,将由第二归约节点处理的数据段存储至远端存储区域415,将由第三归约节点处理的数据段存储至远端存储区域416。
第二个不同点,第一归约节点从管理节点获知第二存储消息(携带有第 一数据段的存储地址和第一数据段的数据量);根据该第二存储消息携带的存储地址确定远端存储区域411,并从远端存储区域411中的以该存储地址开始的连续存储地址读取到由具有该数据量(第二存储消息携带的数据量)的第一数据段;类似地,第一归约节点从远端存储区域414读取由其处理的数据段。
与第一归约节点读取由其处理的数据段类似地,第二归约节点从远端存储区域412和远端存储区域415读取由其处理的数据段;第三归约节点从远端存储区域413和远端存储区域416读取由其处理的数据段。
第三个不同点,归约节点执行归约任务所得的执行结果可以存储至HDFS中。具体地,第一归约节点将对数据段执行Reduce任务所得的执行结果,以文件431的形式存储到HDFS中;第二归约节点将对数据段执行Reduce任务所得的执行结果,以文件432的形式存储到HDFS中;第三归约节点将对数据段执行Reduce任务所得的执行结果,以文件433的形式存储到HDFS中。
实施例三与实施例一的类似效果是:省去了现有技术中归约节点向映射节点请求数据段时先由该映射节点从本次磁盘中读取该数据段再通过TCP流向该归约节点发送读取的数据段这些步骤,有效节省了执行Map/Reduce任务所需的时间。
实施例三区别与实施例一的有益效果是:一个数据段存储在一个远端存储区域,映射节点需要向多个远端存储区域写入数据段,归约节点也需要从多个远端存储区域读取数据段,这样兼顾了:映射节点向各个远端存储区域写入数据段的写入速度,和归约节点从各个远端存储区域读取数据段的读取速度。因此,本实施例适用于归约任务的负荷与映射任务的负荷相当的场景,还适用于归约节点的个数于映射节点的个数差别不大的场景。
可选地,映射节点执行映射任务与归约节点执行归约任务并行执行;假设管理节点向存储池的控制器请求的远端存储区域的存储空间是有限的,如果映射任务的执行速度大于归约任务的执行速度,映射任务与归约任务并行执行的过程中,所述远端存储区域的内存使用率可能达到预设值,代表所述远端存储区域的存储空间接近用完。在所述远端存储区域的内存使用率达到 预设值时,为了保持映射任务与归约任务的并行,管理节点向存储池的控制器请求一块备用存储区域;在所述远端存储区域的内存使用率可能达到预设值时,映射节点暂停该远端存储区域继续写入数据段,将继续执行映射任务所得的数据段转写入该备用存储区域;归约节点继续从远端存储区域读取已存储的数据段,直到读取完远端存储区域中存储的该数据段,才从备用存储区域继续读取该数据段,并基于已执行归约任务的结果(对从远端存储区域读取的该数据段执行归约任务所得的结果),继续对从备用存储区域读取到的所述数据段执行所述归约任务。可见,此可选方案在映射任务的执行速度大于归约任务的执行速度的情况下,为实现映射任务和归约任务的并行执行,在特定条件得到满足时额外请求了备用存储区域,保证了映射任务和归约任务的并行执行。
实施例四
实施例四对上述三个实施例作相应扩展,从映射节点的角度提供了数据处理方法的基础工作流程;该基础工作流程所适用的系统的系统架构参见图1所示的系统架构,对该系统架构的具体描述可参见上述对图1所示系统架构的相应描述。该系统包括CPU池和存储池,所述CPU池与所述存储池通信连接。
所述CPU池包含至少两个CPU,所述CPU池上运行有管理节点、至少一个映射节点和至少一个归约节点;可见,实施例一、实施例二和实施例三中映射节点为两个仅是举例,实施例一、实施例二和实施例三中归约节点为三个也仅是举例。所述至少一个映射节点包括第一映射节点,第一映射节点为所述至少一个映射节点中的任一个映射节点;所述至少一个归约节点包括第一归约节点,第一归约节点为所述至少一个规约节点中的任一个归约节点;所述第一映射节点和所述第一归约节点运行在所述CPU池中的不同CPU上,所述第一映射节点和所述第一归约节点之间的消息通信是通过CPU池的控制器转发消息(例如数据请求消息)来实现的。可选地,管理节点、映射节点和归约节点分别运行在不同所述CPU池中的不同CPU上。可选地,管理节点与映射节点运行在所述CPU池中的相同CPU上,相对地,管理节点与归约节 点运行在所述CPU池中的不同CPU上。可选地,管理节点与归约节点运行在所述CPU池中的相同CPU上,相对地,管理节点与映射节点运行在所述CPU池中的不同CPU上。
所述存储池包括的远端存储区域被所述第一映射节点和所述第一归约节点共享,可选地,所述存储池为内存池。具体地,管理节点为第一映射节点和第一归约节点从存储池的控制器申请到远端存储区域以及该远端存储区域的访问权限,并将远端存储区域分配给第一映射节点和第一归约节点,分配的实现方式可参见实施例一、实施例二和实施例三对分配远端存储区域的相关描述。此处的远端存储区域,可以是对所述至少一个映射节点中的所有映射节点共享,还可以是对所述至少一个归约节点中的所有归约节点共享,当然也可以是仅对第一映射节点和第一归约节点共享的,但至少是对第一映射节点和第一归约节点共享的。本实施例中,所述第一映射节点和所述第一归约节点,均是通过挂载方式访问所述远端存储区域。
如图5所示的基础工作流程是从第一映射节点的角度给出的,图5提供的基础工作流程包括:步骤A501、步骤A502和步骤A503。
首先将数据集划分为一个或多个数据分片,具体划分方式参加上述对第四个动作(为在该架构上执行映射/归约任务所作的第四个动作)的相关描述;每个数据分片的大小可以不同,也可以相同。一个数据分片作为一个映射节点的输入,一个映射节点对一个数据分片执行映射任务。
步骤A501、所述第一映射节点对数据分片执行映射任务,根据所述映射任务的执行结果获取N个至少一个数据段,N为正整数,所述至少一个数据段中的每个数据段由一个与之相对应的归约节点处理,其中,所述至少一个数据段包括第一数据段,所述第一数据段是指由所述第一归约节点处理的数据段,第M个所述至少一个数据段包含第M个所述第一数据段,M为小于或等于N的正整数。
具体地,步骤A501根据所述映射任务的执行结果获取N个至少一个数据段,至少有两种实现方式:
第一种实现方式,所述第一映射节点对数据分片执行完映射任务之后,再根据整个映射任务的执行结果获取N个至少一个数据段,此处对获取方式 不做限定;例如将映射任务所得的执行结果以溢写文件的形式溢写到本地磁盘或者存储池,待所述第一映射节点执行完映射任务之后,再从本地磁盘或者存储池读取第一映射节点溢写的所有溢写文件,基于读取的所有溢写文件生成三个数据段(由第一归约节点执行的数据段、由第二归约节点执行的数据段、由第三归约节点执行的数据段)。
第二种实现方式,所述第一映射节点对数据分片执行映射任务的持续时间段包含N个第一时间段;可见所述第一映射节点执行映射任务的持续时间越长,N的数值越大,可见,N是大于或者等于1的正整数。
下面以所述第一映射节点在第M个所述第一时间段执行映射任务为例,所述第一映射节点对数据分片执行映射任务,根据所述映射任务的执行结果获取N个所述至少一个数据段,具体包括:在第M个所述第一时间段结束时,所述第一映射节点根据在第M个所述第一时间段内执行映射任务所得的执行结果获取第M个所述至少一个数据段。
对于第一映射节点根据在第M个所述第一时间段内执行映射任务所得的执行结果获得一次所述至少一个数据段的实现细节,可参见实施例一中的对应描述。可见,第一映射节点每经过一个所述第一时间段便会生成一个所述至少一个数据段。
步骤A502、所述第一映射节点将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,其中,第M个所述存储消息包括第M个所述第一数据段在所述远端存储区域中的存储地址和第M个所述第一数据段的数据量。
步骤A503、所述第一映射节点向所述管理节点发送N个所述存储消息。
具体地,如果采用第一种实现方式实现步骤A501,那么步骤A502和步骤A503中所述的N均等于1。
如果采用第二种实现方式实现步骤A501,即N大于或等于1,有两种可选执行步骤A502和步骤A503的方式。
第一种可选执行步骤A502和步骤A503的方式,如果期望先执行映射任务、再执行归约任务,则步骤A502可以将N个所述至少一个数据段中的第一数据段一起同时存储至远端存储区域,生成N个存储消息;步骤A503再统一 将N个所述存储消息发送给管理节点。
第二种可选执行步骤A502和步骤A503的方式,如果期望映射任务和归约任务并行执行,步骤A501每获取到一个第一时间段对应的所述至少一个数据段,步骤A502便将该个所述至少一个数据段包含的第一数据段存储至远端存储区域,生成一个存储消息;步骤A503再将该个所述存储消息发送给管理节点,由管理节点转发至第一归约节点后,归约节点根据存储消息从远端存储区域读取该个所述至少一个数据段包含的第一数据段;这种可选方式的实现细节,可参见实施例一、实施例二和实施例三中第一映射节点执行相关步骤的对应描述。
举例说明第二种可选执行步骤A502和步骤A503的方式的实现细节如下:所述第一映射节点在获取到第M个所述至少一个数据段时,将第M个所述第一数据段存储至远端存储区域,生成第M个所述存储消息,向所述管理节点发送第M个所述存储消息。
对于第一映射节点在获取到第M个所述至少一个数据段时,将第M个所述第一数据段存储至远端存储区域,生成第M个所述存储消息,向所述管理节点发送第M个所述存储消息的实现细节,可参见实施例一中的对应描述。可见,第一映射节点每生成一个所述至少一个数据段,便会将该个所述第一数据段存储至远端存储区域,生成该个数据段对应的存储消息,向所述管理节点发送该存储消息,以便第一归约节点及时根据该存储消息从远端存储区域读取该个所述第一数据段;第一归约节点每读取一个所述第一数据段,便基于对先前的所述第一数据段执行归约任务所得的执行结果,对当前读取的一个所述第一数据段继续执行归约任务,直到对N个所述第一数据段执行完归约任务。
可选地,所述远端存储区域的个数大于或者等于所述归约节点的个数。所述至少一个归约节点中的每个规约节点均具有与之相对应的一个所述远端存储区域。与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段。
应知,不论是先执行完映射任务再执行归约任务,还是映射任务和归约任务并行执行,所述第一映射节点将所述第一数据段存储至远端存储区域, 均具体为:所述第一映射节点将所述第一数据段存储至与所述第一归约节点对应的一个所述远端存储区域。对于所述第一映射节点将所述第一数据段存储至与所述第一归约节点对应的一个所述远端存储区域的实现细节,可参见实施例一中第一映射节点将第一数据段存储至远端存储区域211的相应描述。
可选地,所述远端存储区域的个数大于或者等于所述映射节点的个数。所述至少一个映射节点中的每个映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点获取的所述至少一个数据段。
应知,不论是先执行完映射任务再执行归约任务,还是映射任务和归约任务并行执行,所述第一映射节点将所述第一数据段存储至远端存储区域,均具体为:所述第一映射节点将所述第一数据段存储至与所述第一映射节点对应的一个所述远端存储区域。
对于所述第一映射节点将所述第一数据段存储至与所述第一映射节点对应的一个所述远端存储区域的实现细节,可参见实施例二中第一映射节点将第一数据段存储至远端存储区域311的相应描述。
可选地,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共享。
应知,不论是先执行完映射任务再执行归约任务,还是映射任务和归约任务并行执行,所述第一映射节点将所述第一数据段存储至远端存储区域,均具体为:所述第一映射节点将所述第一数据段存储至被所述第一映射节点和所述第一归约节点共享的所述远端存储区域。
对于所述第一映射节点将所述第一数据段存储至被所述第一映射节点和所述第一归约节点共享的所述远端存储区域的实现细节,可参见实施例三中第一映射节点将第一数据段存储至远端存储区域421的相应描述。
实施例五
实施例五对上述实施例一、实施例二和实施例三作相应扩展,从归约节 点的角度提供了数据处理方法的基础工作流程;该基础工作流程所适用的系统与实施例四从映射节点的角度提供的数据处理方法的基础工作流程所适用的系统为同一个系统,在此不再赘述。
如图6所示的基础工作流程是从第一归约节点的角度给出的,图6提供的基础工作流程包括:步骤A601、步骤A602和步骤A603。
步骤A601、所述第一归约节点接收所述管理节点发送的存储消息,所述存储消息携带有第一数据段在远端存储区域中的存储地址和所述第一数据段的数据量,其中,所述第一数据段是指所述第一映射节点获取到的至少一个数据段中由所述第一归约节点处理的数据段;
步骤A602、所述第一归约节点根据所述存储消息携带的所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段;
步骤A603、所述第一归约节点对所述第一数据段执行归约任务。
对于第一归约节点执行步骤A601、步骤A602和步骤A603的实现细节,可参见实施例一、实施例二、实施例三和实施例四中第一归约节点执行相关步骤的对应描述。
可选地,所述远端存储区域的个数大于或者等于所述归约节点的个数。所述至少一个归约节点中的每个规约节点均具有与之相对应的一个所述远端存储区域;与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段。
所述第一归约节点根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述第一归约节点根据所述存储地址确定与所述第一归约节点对应的一个所述远端存储区域,以及在与所述第一归约节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
本实施例将所述存储消息携带的存储地址确定为所述第一数据段在与所述第一归约节点对应的一个所述远端存储区域中的首地址,从该首地址读取所述数据量(所述存储消息携带的数据量)的数据,便可实现对第一数据段的完整读取;本实施例中第一映射节点读取第一数据段的具体读取过程,参见实施例一中第一映射节点从远端存储区域211读取第一数据段的细节描 述。
可选地,所述远端存储区域的个数大于或者等于所述映射节点的个数。所述至少一个映射节点中的每个映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点根据其执行映射任务所得的执行结果获取到的所述至少一个数据段。
所述第一归约节点根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述第一归约节点根据所述存储地址确定与所述第一映射节点对应的一个所述远端存储区域,以及在与所述第一映射节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
本实施例将所述存储消息携带的存储地址确定为所述第一数据段在与所述第一映射节点对应的一个所述远端存储区域中的首地址,从该首地址读取所述数据量(所述存储消息携带的数据量)的数据,便可实现对第一数据段的完整读取;本实施例中第一映射节点读取第一数据段的具体读取过程,参见实施例二中第一映射节点从远端存储区域311读取第一数据段的细节描述。
可选地,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共享。
所述第一归约节点根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述第一归约节点根据所述存储地址确定对所述第一映射节点和所述第一归约节点共享的所述远端存储区域,以及在对所述第一映射节点和所述第一归约节点共享的所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
本实施例将所述存储消息携带的存储地址确定为:所述第一数据段在对所述第一映射节点和所述第一归约节点共享的所述远端存储区域中的首地址;第一映射节点从该首地址读取所述数据量(所述存储消息携带的数据量) 的数据,便可实现对第一数据段的完整读取;本实施例中第一映射节点读取第一数据段的具体读取过程,参见实施例二中第一映射节点从远端存储区域421读取第一数据段的细节描述。
可选地,所述存储池为内存池。
实施例六
实施例六提供的数据处理装置,包含可实现实施例四提供的方法流程的装置单元;鉴于篇幅,此处对实施例六提供的各功能单元所执行的动作,不再做具体描述,可直接参见实施例一、实施例二、实施例三、实施例四提供的方法流程中提供的对应动作描述。
参见图7,本实施例提供的数据处理装置700,所适用的系统包括中央处理器CPU池和存储池,所述CPU池与所述存储池通信连接;所述CPU池包含至少两个CPU,所述CPU池上运行有管理节点、至少一个映射节点和至少一个归约节点,所述至少一个映射节点包括第一映射节点,所述至少一个归约节点包括第一归约节点,所述第一映射节点和所述第一归约节点运行在所述CPU池中的不同CPU上;所述存储池包括的远端存储区域被所述第一映射节点和所述第一归约节点共享;所述数据处理装置700作为所述第一映射节点,所述装置包括:
划分单元701,用于划分单元,用于对数据分片执行映射任务,根据所述映射任务的执行结果获取N个至少一个数据段,N为正整数,所述至少一个数据段中的每个数据段由一个与之相对应的归约节点处理,其中,所述至少一个数据段包括第一数据段,所述第一数据段是指由所述第一归约节点处理的数据段,第M个所述至少一个数据段包含第M个所述第一数据段,M为小于或等于N的正整数;
发送单元702,用于将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,向所述管理节点发送N个所述存储消息,其中,第M个所述存储消息包括第M个所述第一数据段在所述远端存储区域中的存储地址和第M个所述第一数据段的数据量。
可选地,所述第一映射节点对数据分片执行映射任务的持续时间段包含 N个第一时间段;
所述划分单元701,用于对数据分片执行映射任务,根据所述映射任务的执行结果获取N个所述至少一个数据段,具体包括:所述划分单元,用于在第M个所述第一时间段结束时,根据在第M个所述第一时间段内执行映射任务所得的执行结果获取第M个所述至少一个数据段。
可选地,所述发送单元702,用于将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,向所述管理节点发送N个所述存储消息,具体包括:
所述发送单元702,用于在获取到第M个所述至少一个数据段时,将第M个所述第一数据段存储至远端存储区域,生成第M个所述存储消息,向所述管理节点发送第M个所述存储消息。
可选地,所述至少一个归约节点中的每个所述规约节点均具有与之相对应的一个所述远端存储区域;与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段;
所述发送单元702,用于将所述第一数据段存储至远端存储区域,具体为:所述发送单元702,用于将所述第一数据段存储至与所述第一归约节点对应的一个所述远端存储区域。
可选地,所述至少一个映射节点中的每个所述映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点获取的所述至少一个数据段;
所述发送单元702,用于将所述第一数据段存储至远端存储区域,具体为:所述发送单元702,用于将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点将所述第一数据段存储至与所述第一映射节点对应的一个所述远端存储区域。
可选地,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共享;
所述发送单元702,用于将所述第一数据段存储至远端存储区域,具体 为:
所述发送单元702,用于将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点将所述第一数据段存储至被所述第一映射节点和所述第一归约节点共享的所述远端存储区域。
可选地,所述存储池为内存池。
实施例七
实施例七提供的数据处理装置,包含可以实现实施例五提供的方法流程的装置单元;鉴于篇幅,此处对实施例七提供的各功能单元所执行的动作,不再做具体描述,可直接参见实施例一、实施例二、实施例三、实施例四、实施例五提供的方法流程中提供的对应动作描述。
参见图8,本实施例提供的数据处理装置800,所适用的系统包括中央处理器CPU池和存储池,所述CPU池与所述存储池通信连接;所述CPU池包含至少两个CPU,所述CPU池上运行有管理节点、至少一个映射节点和至少一个归约节点,所述至少一个映射节点包括第一映射节点,所述至少一个归约节点包括第一归约节点,所述第一映射节点和所述第一归约节点运行在所述CPU池中的不同CPU上;所述存储池包括的远端存储区域被所述第一映射节点和所述第一归约节点共享;所述数据处理装置800作为所述第一归约节点,所述装置包括:
接收单元801,用于接收所述管理节点发送的存储消息,所述存储消息携带有第一数据段在远端存储区域中的存储地址和所述第一数据段的数据量,其中,所述第一数据段是指所述第一映射节点获取到的至少一个数据段中由所述第一归约节点处理的数据段;
获取单元802,用于根据所述存储消息携带的所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段;
执行单元803,用于对所述第一数据段执行归约任务。
可选地,所述至少一个归约节点中的每个所述规约节点均具有与之相对应的一个所述远端存储区域;与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理 的数据段;
所述获取单元802,用于根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述获取单元802,用于根据所述存储地址确定与所述第一归约节点对应的一个所述远端存储区域,以及在与所述第一归约节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
可选地,所述至少一个映射节点中的每个所述映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点根据其执行映射任务所得的执行结果获取到的所述至少一个数据段;
所述获取单元802,用于根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述获取单元802,用于根据所述存储地址确定与所述第一映射节点对应的一个所述远端存储区域,以及在与所述第一映射节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
可选地,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共享;
所述获取单元802,用于根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述获取单元802,用于根据所述存储地址确定对所述第一映射节点和所述第一归约节点共享的所述远端存储区域,以及在对所述第一映射节点和所述第一归约节点共享的所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
可选地,所述存储池为内存池。
实施例八
实施例八提供了一种执行实施例四和/或实施例五提供的方法步骤的硬件设备,参见图9,该硬件设备为计算机设备900;图9所示的计算机设备 900为本发明实施例上述的已解耦的计算机设备,计算机设备900包括处理器901与存储器902,处理器901与存储器902通过总线903连接;
所述存储器902用于存储计算机指令,当所述计算机设备900时,所述处理器901执行所述存储器902存储的所述计算机指令,以使所述计算机设备900执行实施例四和/或实施例五提供的数据处理方法。该数据处理方法中各个步骤的具体实现,参见实施例一、实施例二、实施例三、实施例四对各个步骤的对应描述,在此不再赘述。
其中,处理器901可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Appl ication Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现上述方法实施例所提供的技术方案。当然,处理器901可以是CPU池中的CPU。
其中,存储器902可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器902存储实现上述方法实施例提供的技术方案的程序代码,还可以存储操作系统程序。在通过软件或者固件来实现上述方法实施例提供的技术方案时,由处理器901来执行。存储器902可以是存储池中的存储介质,也可以是本地的存储介质,例如本地磁盘。
其中,总线903可包括一通路,用于在各个部件(例如处理器901、存储器902、输入/输出接口905、通信接口904)之间传送信息。
其中,输入/输出接口905,输入/输出接口905用于接收输入的数据和信息,输出操作结果等数据。
其中,通信接口904使用例如但不限于收发器一类的收发装置,来实现处理器901与其他设备或通信网络之间的网络通信;可选地,通信接口904可以是用于接入网络的各种接口,如用于接入以太网的以太网接口,该以太网接口包括但不限于RJ-45接口、RJ-11接口、SC光纤接口、FDDI接口、AUI接口、BNC接口和Console接口等。
输入/输出接口905和通信接口904可以是本地的,也可以是图1中I/O池94中的。
应注意,也许使用处理器901、存储器902以及总线903即可实现上述 方法实施例;但是在不同应用场合实现上述方法实施例时,本领域的技术人员应当明白,还可能需要适合在该应用场合实现上述方法实施例所必须的其他器件,例如通信接口904、输入/输出接口905。
实施例九
实施例九提供一种系统,为实施例四、实施例五提供的数据处理方法所适用的系统,可参见实施例四、实施例五对系统的细节描述,在此不再赘述。
此处的第一映射节点与上述方法实施例(实施例一、实施例二、实施例三、实施例四、实施例五)提供的第一映射节点,具有的功能相同,同原理地执行动作;此处的第一归约节点与上述方法实施例(实施例一、实施例二、实施例三、实施例四、实施例五)提供的第一归约节点,具有的功能相同,同原理地执行动作;鉴于篇幅,此处对实施例九中第一映射节点和第一归约节点所具体的功能和可以执行的工作,不再做具体描述,可直接参见实施例一、实施例二、实施例三、实施例四、实施例五提供的方法流程中提供的对应动作描述。可选地,第一映射节点由实施例六的数据处理装置实现,第一归约节点由实施例七的数据处理装置实现。
所述第一映射节点,用于对数据分片执行映射任务,根据所述映射任务的执行结果获取N个至少一个数据段,N为正整数,所述至少一个数据段中的每个数据段由一个与之相对应的归约节点处理,其中,所述至少一个数据段包括第一数据段,所述第一数据段是指由所述第一归约节点处理的数据段,第M个所述至少一个数据段包含第M个所述第一数据段,M为小于或等于N的正整数;将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,其中,第M个所述存储消息包括第M个所述第一数据段在所述远端存储区域中的存储地址和第M个所述第一数据段的数据量;向所述管理节点发送N个所述存储消息;
所述第一归约节点,用于接收所述管理节点发送的所述存储消息;根据所述存储消息携带的存储地址从所述远端存储区域获取具有所述存储消息携带的数据量的所述第一数据段;对所述第一数据段执行归约任务。
可选地,所述第一映射节点对数据分片执行映射任务的持续时间段包含 N个第一时间段;
所述第一映射节点,用于对数据分片执行映射任务,根据所述映射任务的执行结果获取N个所述至少一个数据段,具体包括:所述第一映射节点,用于在第M个所述第一时间段结束时,所述第一映射节点根据在第M个所述第一时间段内执行映射任务所得的执行结果获取第M个所述至少一个数据段。
可选地,所述第一映射节点,用于将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,向所述管理节点发送N个所述存储消息,具体包括:
所述第一映射节点,用于在获取到第M个所述至少一个数据段时,将第M个所述第一数据段存储至远端存储区域,生成第M个所述存储消息,向所述管理节点发送第M个所述存储消息。
可选地,所述至少一个归约节点中的每个规约节点均具有与之相对应的一个所述远端存储区域;与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段;
所述第一映射节点,用于将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点,用于将所述第一数据段存储至与所述第一归约节点对应的一个所述远端存储区域;
所述第一归约节点,用于根据所述存储消息携带的存储地址从所述远端存储区域获取具有所述存储消息携带的数据量的所述第一数据段,具体为:所述第一归约节点,用于根据所述存储地址确定与所述第一归约节点对应的一个所述远端存储区域,以及在与所述第一归约节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
可选地,所述至少一个映射节点中的每个映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点获取的所述至少一个数据段;
所述第一映射节点,用于将所述第一数据段存储至远端存储区域,具体 为:所述第一映射节点,用于将所述第一数据段存储至与所述第一映射节点对应的一个所述远端存储区域;
所述第一归约节点,用于根据所述存储消息携带的存储地址从所述远端存储区域获取具有所述存储消息携带的数据量的所述第一数据段,具体为:所述第一归约节点,用于根据所述存储地址确定与所述第一映射节点对应的一个所述远端存储区域,以及在与所述第一映射节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
可选地,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共享;
所述第一映射节点,用于将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点,用于将所述第一数据段存储至被所述第一映射节点和所述第一归约节点共享的所述远端存储区域;
所述第一归约节点,用于根据所述存储消息携带的存储地址从所述远端存储区域获取具有所述存储消息携带的数据量的所述第一数据段,具体为:所述第一归约节点,用于根据所述存储地址确定对所述第一映射节点和所述第一归约节点共享的所述远端存储区域,以及在对所述第一映射节点和所述第一归约节点共享的所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
可选地,所述存储池为内存池。
应当理解,尽管在上述实施例中可能采用术语“第一”、“第二”、“第三”等来描述各个单元、存储消息、归约节点、映射节点,例如描述“第一归约节点”、“第二归约节点”、“第三归约节点”,但不应限于这些术语,并且“第一”、“第二”、“第三”等术语仅用于相互区分,并不代表它们之间存在顺序的关系;例如“第一归约节点”、“第二归约节点”并不代表特指的归约节点,也不代表它们之间存在顺序的关系,“第一”和“第二”仅用来将比较输入端口彼此区分开,在不脱离本发明实施例范围的情况下,可以对“第一归约节点”、“第二归约节点”互换名称,或者将“第一归约 节点”改称为“第四归约节点”;因此,在本发明实施例中,对术语“第一”、“第二”等不做限制。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。

Claims (33)

  1. 一种数据处理方法,其特征在于,所适用的系统包括中央处理器CPU池和存储池,所述CPU池与所述存储池通信连接;所述CPU池包含至少两个CPU,所述CPU池上运行有管理节点、至少一个映射节点和至少一个归约节点,所述至少一个映射节点包括第一映射节点,所述至少一个归约节点包括第一归约节点,所述第一映射节点和所述第一归约节点运行在所述CPU池中的不同CPU上;所述存储池包括的远端存储区域被所述第一映射节点和所述第一归约节点共享;所述方法包括:
    所述第一映射节点对数据分片执行映射任务,根据所述映射任务的执行结果获取N个至少一个数据段,N为正整数,所述至少一个数据段中的每个数据段由一个与之相对应的归约节点处理,其中,所述至少一个数据段包括第一数据段,所述第一数据段是指由所述第一归约节点处理的数据段,第M个所述至少一个数据段包含第M个所述第一数据段,M为小于或等于N的正整数;
    所述第一映射节点将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,其中,第M个所述存储消息包括第M个所述第一数据段在所述远端存储区域中的存储地址和第M个所述第一数据段的数据量;
    所述第一映射节点向所述管理节点发送N个所述存储消息。
  2. 根据权利要求1所述的方法,其特征在于,所述第一映射节点对数据分片执行映射任务的持续时间段包含N个第一时间段;
    所述第一映射节点对数据分片执行映射任务,根据所述映射任务的执行结果获取N个所述至少一个数据段,具体包括:在第M个所述第一时间段结束时,所述第一映射节点根据在第M个所述第一时间段内执行映射任务所得的执行结果获取第M个所述至少一个数据段。
  3. 根据权利要求2所述的方法,其特征在于,所述第一映射节点将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,向所述管理节点发送N个所述存储消息,具体包括:
    所述第一映射节点在获取到第M个所述至少一个数据段时,将第M个所 述第一数据段存储至远端存储区域,生成第M个所述存储消息,向所述管理节点发送第M个所述存储消息。
  4. 根据权利要求1至3任一项所述的方法,其特征在于,所述至少一个归约节点中的每个规约节点均具有与之相对应的一个所述远端存储区域;与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段;
    所述第一映射节点将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点将所述第一数据段存储至与所述第一归约节点对应的一个所述远端存储区域。
  5. 根据权利要求至3任一项所述的方法,其特征在于,所述至少一个映射节点中的每个映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点获取的所述至少一个数据段;
    所述第一映射节点将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点将所述第一数据段存储至与所述第一映射节点对应的一个所述远端存储区域。
  6. 根据权利要求至3任一项所述的方法,其特征在于,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共享;
    所述第一映射节点将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点将所述第一数据段存储至被所述第一映射节点和所述第一归约节点共享的所述远端存储区域。
  7. 根据权利要求1至6任一项所述的方法,其特征在于,所述存储池为内存池。
  8. 一种数据处理方法,所适用的系统包括中央处理器CPU池和存储池,所述CPU池与所述存储池通信连接;所述CPU池包含至少两个CPU,所述CPU池上运行有管理节点、至少一个映射节点和至少一个归约节点,所述至少一个映射节点包括第一映射节点,所述至少一个归约节点包括第一归约节点,所述第一映射节点和所述第一归约节点运行在所述CPU池中的不同CPU上; 所述存储池包括的远端存储区域被所述第一映射节点和所述第一归约节点共享;其特征在于,所述方法包括:
    所述第一归约节点接收所述管理节点发送的存储消息,所述存储消息携带有第一数据段在远端存储区域中的存储地址和所述第一数据段的数据量,其中,所述第一数据段是指所述第一映射节点获取到的至少一个数据段中由所述第一归约节点处理的数据段;
    所述第一归约节点根据所述存储消息携带的所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段;
    所述第一归约节点对所述第一数据段执行归约任务。
  9. 根据权利要求8所述的方法,其特征在于,所述至少一个归约节点中的每个规约节点均具有与之相对应的一个所述远端存储区域;与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段;
    所述第一归约节点根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:
    所述第一归约节点根据所述存储地址确定与所述第一归约节点对应的一个所述远端存储区域,以及在与所述第一归约节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
  10. 根据权利要求8所述的方法,其特征在于,所述至少一个映射节点中的每个映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点根据其执行映射任务所得的执行结果获取到的所述至少一个数据段;
    所述第一归约节点根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:
    所述第一归约节点根据所述存储地址确定与所述第一映射节点对应的一个所述远端存储区域,以及在与所述第一映射节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
  11. 根据权利要求8所述的方法,其特征在于,所述远端存储区域的个 数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共享;
    所述第一归约节点根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:
    所述第一归约节点根据所述存储地址确定对所述第一映射节点和所述第一归约节点共享的所述远端存储区域,以及在对所述第一映射节点和所述第一归约节点共享的所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
  12. 根据权利要求8至11任一项所述的方法,其特征在于,所述存储池为内存池。
  13. 一种数据处理装置,其特征在于,所适用的系统包括中央处理器CPU池和存储池,所述CPU池与所述存储池通信连接;所述CPU池包含至少两个CPU,所述CPU池上运行有管理节点、至少一个映射节点和至少一个归约节点,所述至少一个映射节点包括第一映射节点,所述至少一个归约节点包括第一归约节点,所述第一映射节点和所述第一归约节点运行在所述CPU池中的不同CPU上;所述存储池包括的远端存储区域被所述第一映射节点和所述第一归约节点共享;所述数据处理装置作为所述第一映射节点,所述装置包括:
    划分单元,用于对数据分片执行映射任务,根据所述映射任务的执行结果获取N个至少一个数据段,N为正整数,所述至少一个数据段中的每个数据段由一个与之相对应的归约节点处理,其中,所述至少一个数据段包括第一数据段,所述第一数据段是指由所述第一归约节点处理的数据段,第M个所述至少一个数据段包含第M个所述第一数据段,M为小于或等于N的正整数;
    发送单元,用于将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,向所述管理节点发送N个所述存储消息,其中,第M个所述存储消息包括第M个所述第一数据段在所述远端存储区域中的存储地址和第M个所述第一数据段的数据量。
  14. 根据权利要求13所述的数据处理装置,其特征在于,所述第一映 射节点对数据分片执行映射任务的持续时间段包含N个第一时间段;
    所述划分单元,用于对数据分片执行映射任务,根据所述映射任务的执行结果获取N个所述至少一个数据段,具体包括:所述划分单元,用于在第M个所述第一时间段结束时,根据在第M个所述第一时间段内执行映射任务所得的执行结果获取第M个所述至少一个数据段。
  15. 根据权利要求13或14所述的数据处理装置,其特征在于,所述发送单元,用于将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,向所述管理节点发送N个所述存储消息,具体包括:
    所述发送单元,用于在获取到第M个所述至少一个数据段时,将第M个所述第一数据段存储至远端存储区域,生成第M个所述存储消息,向所述管理节点发送第M个所述存储消息。
  16. 根据权利要求13至15任一项所述的数据处理装置,其特征在于,所述至少一个归约节点中的每个规约节点均具有与之相对应的一个所述远端存储区域;与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段;
    所述发送单元,用于将所述第一数据段存储至远端存储区域,具体为:所述发送单元,用于将所述第一数据段存储至与所述第一归约节点对应的一个所述远端存储区域。
  17. 根据权利要求13至15任一项所述的数据处理装置,其特征在于,所述至少一个映射节点中的每个映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点获取的所述至少一个数据段;
    所述发送单元,用于将所述第一数据段存储至远端存储区域,具体为:所述发送单元,用于将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点将所述第一数据段存储至与所述第一映射节点对应的一个所述远端存储区域。
  18. 根据权利要求13至15任一项所述的数据处理装置,其特征在于,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共 享;
    所述发送单元,用于将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点将所述第一数据段存储至被所述第一映射节点和所述第一归约节点共享的所述远端存储区域。
  19. 根据权利要求13至18任一项所述的数据处理装置,其特征在于,所述存储池为内存池。
  20. 一种计算机设备,所述计算机设备包括处理器和存储器,所述处理器与存储器总线连接,其特征在于,所述存储器用于存储计算机指令,当所述计算机设备运行时,所述处理器执行所述存储器存储的所述计算机指令,以使所述计算机设备执行权利要求1至7任一项所述的数据处理方法。
  21. 一种数据处理装置,其特征在于,所适用的系统包括中央处理器CPU池和存储池,所述CPU池与所述存储池通信连接;所述CPU池包含至少两个CPU,所述CPU池上运行有管理节点、至少一个映射节点和至少一个归约节点,所述至少一个映射节点包括第一映射节点,所述至少一个归约节点包括第一归约节点,所述第一映射节点和所述第一归约节点运行在所述CPU池中的不同CPU上;所述存储池包括的远端存储区域被所述第一映射节点和所述第一归约节点共享;所述数据处理装置作为所述第一归约节点,所述装置包括:
    接收单元,用于接收所述管理节点发送的存储消息,所述存储消息携带有第一数据段在远端存储区域中的存储地址和所述第一数据段的数据量,其中,所述第一数据段是指所述第一映射节点获取到的至少一个数据段中由所述第一归约节点处理的数据段;
    获取单元,用于根据所述存储消息携带的所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段;
    执行单元,用于对所述第一数据段执行归约任务。
  22. 根据权利要求21所述的数据处理装置,其特征在于,所述至少一个归约节点中的每个规约节点均具有与之相对应的一个所述远端存储区域;与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段;
    所述获取单元,用于根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述获取单元,用于根据所述存储地址确定与所述第一归约节点对应的一个所述远端存储区域,以及在与所述第一归约节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
  23. 根据权利要求21所述的数据处理装置,其特征在于,所述至少一个映射节点中的每个映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点根据其执行映射任务所得的执行结果获取到的所述至少一个数据段;
    所述获取单元,用于根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述获取单元,用于根据所述存储地址确定与所述第一映射节点对应的一个所述远端存储区域,以及在与所述第一映射节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
  24. 根据权利要求21所述的数据处理装置,其特征在于,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每个所述远端存储区域被一个所述映射节点和一个所述归约节点共享;
    所述获取单元,用于根据所述存储地址从所述远端存储区域获取具有所述数据量的所述第一数据段,具体为:所述获取单元,用于根据所述存储地址确定对所述第一映射节点和所述第一归约节点共享的所述远端存储区域,以及在对所述第一映射节点和所述第一归约节点共享的所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
  25. 根据权利要求21至24任一项所述的数据处理装置,其特征在于,所述存储池为内存池。
  26. 一种计算机设备,所述计算机设备包括处理器和存储器,所述处理器与存储器总线连接,其特征在于,所述存储器用于存储计算机指令,当所述计算机设备运行时,所述处理器执行所述存储器存储的所述计算机指令,以使所述计算机设备执行权利要求8至12任一项所述的数据处理方法。
  27. 一种系统,其特征在于,包括中央处理器CPU池和存储池,所述CPU池与所述存储池通信连接;所述CPU池包含至少两个CPU,所述CPU池上运行有管理节点、至少一个映射节点和至少一个归约节点,所述至少一个映射节点包括第一映射节点,所述至少一个归约节点包括第一归约节点,所述第一映射节点和所述第一归约节点运行在所述CPU池中的不同CPU上;所述存储池包括的远端存储区域被所述第一映射节点和所述第一归约节点共享;
    所述第一映射节点,用于对数据分片执行映射任务,根据所述映射任务的执行结果获取N个至少一个数据段,N为正整数,所述至少一个数据段中的每个数据段由一个与之相对应的归约节点处理,其中,所述至少一个数据段包括第一数据段,所述第一数据段是指由所述第一归约节点处理的数据段,第M个所述至少一个数据段包含第M个所述第一数据段,M为小于或等于N的正整数;将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,其中,第M个所述存储消息包括第M个所述第一数据段在所述远端存储区域中的存储地址和第M个所述第一数据段的数据量;向所述管理节点发送N个所述存储消息;
    所述第一归约节点,用于接收所述管理节点发送的所述存储消息;根据所述存储消息携带的存储地址从所述远端存储区域获取具有所述存储消息携带的数据量的所述第一数据段;对所述第一数据段执行归约任务。
  28. 根据权利要求27所述的系统,其特征在于,所述第一映射节点对数据分片执行映射任务的持续时间段包含N个第一时间段;
    所述第一映射节点,用于对数据分片执行映射任务,根据所述映射任务的执行结果获取N个所述至少一个数据段,具体包括:所述第一映射节点,用于在第M个所述第一时间段结束时,所述第一映射节点根据在第M个所述第一时间段内执行映射任务所得的执行结果获取第M个所述至少一个数据段。
  29. 根据权利要求27或28所述的系统,其特征在于,所述第一映射节点,用于将N个所述至少一个数据段中的第一数据段均存储至远端存储区域,并生成N个存储消息,向所述管理节点发送N个所述存储消息,具体包括:
    所述第一映射节点,用于在获取到第M个所述至少一个数据段时,将第 M个所述第一数据段存储至远端存储区域,生成第M个所述存储消息,向所述管理节点发送第M个所述存储消息。
  30. 根据权利要求27至29任一项所述的系统,其特征在于,所述至少一个归约节点中的每个规约节点均具有与之相对应的一个所述远端存储区域;与所述第一归约节点对应的一个所述远端存储区域,用于存储各个所述映射节点获取的数据段中由所述第一归约节点处理的数据段;
    所述第一映射节点,用于将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点,用于将所述第一数据段存储至与所述第一归约节点对应的一个所述远端存储区域;
    所述第一归约节点,用于根据所述存储消息携带的存储地址从所述远端存储区域获取具有所述存储消息携带的数据量的所述第一数据段,具体为:所述第一归约节点,用于根据所述存储地址确定与所述第一归约节点对应的一个所述远端存储区域,以及在与所述第一归约节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
  31. 根据权利要求27至29任一项所述的系统,其特征在于,所述至少一个映射节点中的每个映射节点均具有与之相对应的一个所述远端存储区域;与所述第一映射节点对应的一个所述远端存储区域,用于存储所述第一映射节点获取的所述至少一个数据段;
    所述第一映射节点,用于将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点,用于将所述第一数据段存储至与所述第一映射节点对应的一个所述远端存储区域;
    所述第一归约节点,用于根据所述存储消息携带的存储地址从所述远端存储区域获取具有所述存储消息携带的数据量的所述第一数据段,具体为:所述第一归约节点,用于根据所述存储地址确定与所述第一映射节点对应的一个所述远端存储区域,以及在与所述第一映射节点对应的一个所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
  32. 根据权利要求27至29任一项所述的系统,其特征在于,所述远端存储区域的个数等于所述映射节点的个数与所述归约节点的个数的乘积,每 个所述远端存储区域被一个所述映射节点和一个所述归约节点共享;
    所述第一映射节点,用于将所述第一数据段存储至远端存储区域,具体为:所述第一映射节点,用于将所述第一数据段存储至被所述第一映射节点和所述第一归约节点共享的所述远端存储区域;
    所述第一归约节点,用于根据所述存储消息携带的存储地址从所述远端存储区域获取具有所述存储消息携带的数据量的所述第一数据段,具体为:所述第一归约节点,用于根据所述存储地址确定对所述第一映射节点和所述第一归约节点共享的所述远端存储区域,以及在对所述第一映射节点和所述第一归约节点共享的所述远端存储区域中确定所述第一数据段的首地址,从所述首地址开始读取所述数据量的所述第一数据段。
  33. 根据权利要求27至32任一项任一项所述的系统,其特征在于,所述存储池为内存池。
CN201580063658.XA 2015-12-31 2015-12-31 数据处理方法、装置和系统 Pending CN107430510A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/100080 WO2017113277A1 (zh) 2015-12-31 2015-12-31 数据处理方法、装置和系统

Publications (1)

Publication Number Publication Date
CN107430510A true CN107430510A (zh) 2017-12-01

Family

ID=59224126

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580063658.XA Pending CN107430510A (zh) 2015-12-31 2015-12-31 数据处理方法、装置和系统

Country Status (4)

Country Link
US (1) US10599436B2 (zh)
EP (1) EP3376372A4 (zh)
CN (1) CN107430510A (zh)
WO (1) WO2017113277A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109885383A (zh) * 2018-10-30 2019-06-14 广东科学技术职业学院 一种带约束条件的非单位时间任务调度方法
CN112308220A (zh) * 2019-07-30 2021-02-02 韩国科学技术院 神经网络加速系统及其操作方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038059A (zh) * 2016-02-03 2017-08-11 阿里巴巴集团控股有限公司 虚拟机部署方法及装置
CN108228327B (zh) * 2017-12-29 2021-01-15 北京奇虎科技有限公司 一种任务的处理方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236581A (zh) * 2010-04-30 2011-11-09 国际商业机器公司 用于数据中心的映射化简方法和系统
CN103970520A (zh) * 2013-01-31 2014-08-06 国际商业机器公司 MapReduce架构中的资源管理方法、装置和架构系统
US20140358977A1 (en) * 2013-06-03 2014-12-04 Zettaset, Inc. Management of Intermediate Data Spills during the Shuffle Phase of a Map-Reduce Job

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4519179B2 (ja) * 2008-02-25 2010-08-04 富士通株式会社 論理ボリューム管理プログラム、論理ボリューム管理装置、論理ボリューム管理方法、および分散ストレージシステム
CN102456031B (zh) * 2010-10-26 2016-08-31 腾讯科技(深圳)有限公司 一种MapReduce系统和处理数据流的方法
US8756410B2 (en) * 2010-12-08 2014-06-17 Microsoft Corporation Polynomial evaluation delegation
CN102662639A (zh) * 2012-04-10 2012-09-12 南京航空航天大学 一种基于Mapreduce的多GPU协同计算方法
US8972983B2 (en) * 2012-04-26 2015-03-03 International Business Machines Corporation Efficient execution of jobs in a shared pool of resources
CN102710772B (zh) * 2012-06-04 2015-09-30 何春涛 一种基于云平台的海量数据通讯系统
CN103279330A (zh) * 2013-05-14 2013-09-04 江苏名通信息科技有限公司 一种基于虚拟机GPU计算下的MapReduce并行编程模型
CN104317650B (zh) * 2014-10-10 2018-05-01 北京工业大学 一种面向Map/Reduce型海量数据处理平台的作业调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236581A (zh) * 2010-04-30 2011-11-09 国际商业机器公司 用于数据中心的映射化简方法和系统
CN103970520A (zh) * 2013-01-31 2014-08-06 国际商业机器公司 MapReduce架构中的资源管理方法、装置和架构系统
US20140358977A1 (en) * 2013-06-03 2014-12-04 Zettaset, Inc. Management of Intermediate Data Spills during the Shuffle Phase of a Map-Reduce Job

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109885383A (zh) * 2018-10-30 2019-06-14 广东科学技术职业学院 一种带约束条件的非单位时间任务调度方法
CN109885383B (zh) * 2018-10-30 2023-08-01 广东科学技术职业学院 一种带约束条件的非单位时间任务调度方法
CN112308220A (zh) * 2019-07-30 2021-02-02 韩国科学技术院 神经网络加速系统及其操作方法

Also Published As

Publication number Publication date
EP3376372A1 (en) 2018-09-19
US20180293075A1 (en) 2018-10-11
US10599436B2 (en) 2020-03-24
EP3376372A4 (en) 2018-12-26
WO2017113277A1 (zh) 2017-07-06

Similar Documents

Publication Publication Date Title
US9959337B2 (en) Independent data processing environments within a big data cluster system
CN108027801A (zh) 数据处理方法、装置和系统
US11709843B2 (en) Distributed real-time partitioned MapReduce for a data fabric
KR101502896B1 (ko) 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
CN104113597B (zh) 一种多数据中心的hdfs数据读写方法
CN106503058B (zh) 一种数据加载方法、终端和计算集群
CN104794249A (zh) 一种数据库的实现方法和设备
CN105786603B (zh) 一种基于分布式的高并发业务处理系统及方法
US9092272B2 (en) Preparing parallel tasks to use a synchronization register
CN107430510A (zh) 数据处理方法、装置和系统
CN105765578A (zh) 分布式文件系统中的数据的并行访问
US20200052885A1 (en) File storage method and apparatus for blockchain network
Salehian et al. Comparison of spark resource managers and distributed file systems
JP2015114913A (ja) ストレージ装置、ストレージシステム及びデータ管理プログラム
US10592493B1 (en) Spot-instanced bulk data uploading
Akila et al. QoS-aware rule-based traffic-efficient multiobjective service selection in big data space
JPH10293695A (ja) 論理計算機システムの動的再構成方式
CN115202859A (zh) 一种内存扩展方法以及相关设备
JP5031538B2 (ja) データ分配方法、データ分配プログラム、及び並列データベースシステム
CN109254870A (zh) 数据备份的方法和装置
WO2022057698A1 (en) Efficient bulk loading multiple rows or partitions for single target table
Diwakar Reddy et al. Algorithms for Iterative Applications in MapReduce Framework
US11188389B2 (en) Distributed system that promotes task-machine affinity
Idris et al. In-map/in-reduce: Concurrent job execution in MapReduce
KR101602170B1 (ko) 효율적인 메모리 사용을 위한 대용량 데이터 공유 시스템 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
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: 20171201