一种数据处理方法及相关设备的制造方法

文档序号:8412315阅读:268来源:国知局
一种数据处理方法及相关设备的制造方法
【技术领域】
[0001]本发明涉及信息处理技术领域,具体涉及一种数据处理方法及相关设备。
【背景技术】
[0002]大数据与云计算一起,为信息技术(IT, Informat1n Technology)带来一场新革命,云计算具备强大的大数据计算能力,计算速度非常快,可是大数据的传送却成为其一大难题。
[0003]MapReduce (本领域中暂时没有统一的中文译文)是谷歌搜索引擎Google提供的一个著名的云计算架构,用于大规模数据集(大于1TB)上的并行运算,Hadoop (本领域中暂时没有统一的中文译文)是MapReduce架构的具体实现,在Hadoop集群中分为主节点设备和从节点设备。其中,在主节点设备中利用MapReduce所提供的Map函数把数据集按照大小分割成M片数据分片,将数据分片分配到多个从节点设备上做并行处理。具体地,每个从节点设备从数据分片中获取键值对的值,将值拼接存储在从节点设备的处理器(Central Processing Unit,简称CPU)分配的缓冲区中,之后,从缓冲区读取键值对的值进行解析,例如转换键值对的值的数据格式等,再将解析后的值通过应用程序编程接口(API,Applicat1n Programming Interface)拼接到从节点设备的图形处理器(GPU, GraphicsProcessing Unit)分配存储数据的缓冲区中,由GPU进行计算处理。
[0004]本发明技术人员在实现上述方案时发现,由于MapReduce架构中没有提供解析函数,在对键值对的值进行解析时,需要依靠于程序员所编写的相应程序;同时,由于CPU分配存储键值对的值的缓冲区与GPU分配用来存储数据的缓冲区大小可能不一致,而MapReduce架构中没有提供相应的判断方法,同样依靠于程序员所编写的相应判断函数,对CPU和GPU的缓冲区是否一致进行判断,降低从节点设备的执行效率。

【发明内容】

[0005]针对上述缺陷,本发明实施例提供了一种的数据处理方法及相关设备,应用于MapReduce架构下的Hadoop集群,可以提高Hadoop集群中从节点设备的工作效率,简化程序员的编程工作,有利于后续优化MapReduce架构。
[0006]第一方面,本发明提供一种数据处理方法,应用于MapReduce架构下的Hadoop集群,所述Hadoop集群包括主节点设备和从节点设备,所述从节点设备包括处理器CPU和图形处理器GPU,所述从节点设备从所述主节点设备获取数据分片,所述CPU中设置有数据预处理器和数据拼接器,所述方法包括:
[0007]所述数据预处理器从所述CPU的第一缓冲区读取元数据;其中,当从数据分片获取的数据集合存储进所述第一缓冲区时,在所述第一缓冲区头部为所述数据集合添加元数据,所述元数据中包括所述数据集合的数据在所述第一缓冲区的存储地址;
[0008]所述数据预处理器根据所述元数据所指示的存储地址从所述第一缓冲区读取所述数据集合的数据;
[0009]所述数据预处理器根据预设解析函数,将所述数据集合的数据转换成所述预设解析函数所指示的数据格式,并将转换后的数据集合生成数据块后存储在所述CPU的第二缓冲区,以使得所述数据拼接器从所述第二缓冲区读取所述数据块拼接到所述GPU。
[0010]结合第一方面,在第一种可能的实现方式中,所述元数据具体包括地址索引数组,所述地址索引数组包含有与所述数据集合的数据一一对应的数据元素,所述数据元素用于指示所述数据集合的数据在所述第一缓冲区的存储地址,进而所述数据预处理器根据所述元数据所指示的存储地址从所述第一缓冲区读取数据集合中的数据包括:所述数据预处理器从所述地址索引数组的数据元素指示在第一缓冲区的存储地址开始读取,直到下一个数据元素指示的存储地址或所述第一缓冲区末端结束读取数据。
[0011]结合第一方面,在第二种可能的实现方式中,所述将所述数据集合的数据转换成所述预设解析函数所指示的数据格式包括:所述数据预处理器根据所述预设的解析函数将所述数据集合的数据转换成所述解析函数指定的满足逻辑运算的数据格式。
[0012]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,当所述第一缓冲区对所述数据集合的数据的存储格式与所述GPU中对数据的存储格式不一致时,所述将转换后的数据集合生成数据块后包括:所述数据预处理器将所述数据块中的数据转换成所述GPU中的存储格式。
[0013]结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述数据集合具体由所述数据分片中的多个键值对的值拼接组成。
[0014]结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,或第一方面的第三种可能的实现方式,在第五种可能的实现方式中,所述第一缓冲区和所述第二缓冲区由所述CPU自动分配和回收,所述第一缓冲区的生存周期为一个数据分片的处理时间,所述第二缓冲区的生存周期为一个数据集合的处理时间。
[0015]本发明第二方面提供一种数据处理方法,应用于MapReduce架构下的Hadoop集群,所述Hadoop集群包括主节点设备和从节点设备,所述从节点设备包括处理器CPU和图形处理器GPU,所述从节点设备从所述主节点设备获取数据分片,所述CPU中设置有数据预处理器和数据拼接器,所述方法包括:
[0016]所述数据拼接器从所述CPU的第二缓冲区读取所述数据预处理器生成的数据块;
[0017]所述数据拼接器将所述数据块拼接到所述GPU中被分配存储数据块的工作缓冲区。
[0018]结合第二方面,在第一种可能的实现方式中,当所述数据拼接器将所述数据块拼接到所述GPU中被分配存储数据块的工作缓冲区失败时,则暂停拼接所述数据块,并触发所述GPU处理所述工作缓冲区存储的数据块。
[0019]结合第二方面,或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述数据拼接器从游标参数指示的起始地址开始拼接所述数据块,所述游标参数用于指示所述GPU中被分配存储数据块的工作缓冲区中可用于存储数据块的起始地址。
[0020]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,当拼接所述数据块成功后,所述方法还包括:所述数据拼接器通知所述GPU所述数据块的大小;所述数据拼接器更新所述游标参数。
[0021]本发明第三方面提供一种数据预处理器,包括:
[0022]第一读取单元,用于从所述CPU的第一缓冲区读取元数据;其中,当从数据分片获取的数据集合存储进所述第一缓冲区时,在所述第一缓冲区头部为所述数据集合添加元数据,所述元数据中包括所述数据集合的数据在所述第一缓冲区的存储地址;
[0023]第二读取单元,用于根据所述元数据所指示的存储地址从所述第一缓冲区读取所述数据集合的数据;
[0024]转换单元,用于根据预设解析函数,将所述数据集合的数据转换成所述预设解析函数所指示的数据格式,并将转换后的数据集合生成数据块;
[0025]存储单元,用于将所述数据块存储在所述CPU的第二缓冲区,以使得所述数据拼接器从所述第二缓冲区读取所述数据块拼接到所述GPU。
[0026]结合第三方面,在第一种可能的实现方式中,所述元数据具体包括地址索引数组,所述地址索引数组包含有与所述数据集合的数据一一对应的数据元素,所述数据元素用于指示所述数据集合的数据在所述第一缓冲区的存储地址,进而所述第二读取单元包括:数据读取单元,用于从所述地址索引数组的数据元素指示在第一缓冲区的存储地址开始读取,直到下一个数据元素指示的存储地址或所述第一缓冲区末端结束读取数据。
[0027]结合第三方面,或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述解析单元包括:数据格式转换单元,用于通过预设的解析函数将所述数据集合的数据转换成所述解析函数指定的满足逻辑运算的数据格式生成单元,用于将转换的数据集合生成数据块。
[0028]结合第三方面,在第三种可能的实现方式中,所述解析单元还包括:格式转换单元,用于当所述第一缓冲区对所述数据集合的数据的存储格式与所述GPU中对数据的存储格式不一致时,将所述数据块中的数据转换成所述GPU中的存储格式。
[0029]本发明第四方面提供一种数据拼接器,包括:
[0030]第三读取单元,用于从所述CPU的第二缓冲区读取所述数据预处理器生成的数据块;
[0031]拼接处理单元,用于将所述数据块拼接到所述GPU中被分配存储数据块的工作缓冲区。
[0032]结合第四方面,在第一种可能的实现方式中,所述数据拼接器还包括:触发处理单元,用于当所述数据拼接器将所述数据块拼接到所述GPU中被分配存储数据块的工作缓冲区失败时,则暂停拼接所述数据块,并触发所述GPU处理所述工作缓冲区存储的数据块。
[0033]结合第四方面,或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述拼接处理单元具体用于从游标参数指示的起始地址开始拼接所述数据块,所述游标参数用于指示所述GPU中被分配存储数据块的工作缓冲区中可用于存储数据块的起始地址。
[0034]结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据拼接器还包括:通知单元,用于通知所述GPU所述数据块的大小;更新单元,用于更新所述游标参数。
[0035]本发明第五方面提供一种处理器,可包括上述第三方面所述的数据预处理器和上述第四方面所述的数据拼接器。
[0036]结合第五方面,在第一种可能的实现方式中,自动分配和回收所述第一缓冲区和所述第二缓冲区,所述第一缓冲区的生存周期为一个数据分片的处理时间,所述第二缓冲区的生存周期为一个数据集合的处理时间。
[0037]本发明第六方面提供一种从节点设备,可包括上述第五方面所述的处理器CPU,以及图形处理器GPU ;其中,所述CPU中的数据预处理器用于将从数据分片获取的数据集合转换数据格式,并将转换数据格式后的数据集合生成数据块,通过所述(PU中的数据拼接器将所述数据块拼接到所述GPU中分配存储数据块的工作缓冲区中;所述GPU用于对所述数据块进行处理得到处理结果,之后将所述处理结果返回给所述CPU。
[0038]从以上技术方案可以看出,本发明实施例具有以下优点:
[0039]一方面,本发明实施例通过在从节点设备中设置数据预处理器和数据拼接器,由数据预处理器从CPU的第一缓冲区读取元数据,由于元数据是在数据集合存储进第一缓冲区时为该数据集合生成,用于表示该数据集合的数据在第一缓冲区的存储地址,之后数据预处理器能够根据元数据从第一缓冲区读取数据集合的数据,再根据预设的解析函数对数据集合的数据进行格式转换,之后将转换后的数据集合生成数据块,把数据块存储到CPU的第二缓冲区中,以便由数据拼接器完成与GPU的数据块拼接。与现有技术相比,本发明实施例中通过在将数据集合存储进第一缓冲区时,为数据集合的数据添加包括存储地址的元数据,数据预处理器可以自动从第一缓冲区读取数据集合的数据,不需
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1