一种数据处理方法和装置制造方法及图纸

技术编号:19933494 阅读:30 留言:0更新日期:2018-12-29 04:18
本申请提供一种数据处理方法和装置,该方法包括:从子数据集中获取多个待处理数据;对所述多个待处理数据分别进行Map处理,得到多个Map处理结果;针对得到的每个Map处理结果,将所述Map处理结果发送给对应的Reduce节点,以使所述Reduce节点根据Map处理结果进行Reduce处理。通过本申请的技术方案,Map节点得到Map处理结果后,将Map处理结果发送给Reduce节点,不需要将Map处理结果写入到磁盘,不需要从磁盘中读取所有的Map处理结果,提高Map节点的处理性能和运行效率,减少磁盘IO的消耗。

【技术实现步骤摘要】
一种数据处理方法和装置
本申请涉及通信
,尤其涉及一种数据处理方法和装置。
技术介绍
随着计算机技术的发展,计算机需要处理的数据量也越来越大,单台计算机已经不能处理一些大规模数据,为此需要将多台计算机联合起来,构成计算机群,并行处理大规模数据。为了将多台计算机联合起来,并行处理大规模数据,当前提出一种并行处理大规模数据的系统,即映射归约(MapReduce)系统,MapReduce系统可以对大规模数据集进行并行处理,是分布式计算框架。在对数据集进行并行处理时,将数据集分解为多个子数据集,每个映射(Map)节点对应一个或多个子数据集。Map节点读取自身对应子数据集中的数据,对读取的数据进行Map处理,得到Map处理结果,并将Map处理结果写入到缓冲区。由于缓冲区具有存储空间限制,因此,当所述缓冲区达到该限制时,Map节点在得到Map处理结果后,不再将Map处理结果写入到缓冲区,而是将Map处理结果写入到磁盘。在任务完成后,Map节点读取磁盘中的所有Map处理结果,将读取的所有Map处理结果提供给归约(Reduce)节点。Reduce节点根据Map节点提供的Map处理结果、缓冲区中的Map处理结果进行Reduce处理。但是,Map节点将Map处理结果写入到磁盘、Map节点从磁盘中读取所有Map处理结果的操作,会影响Map节点的处理性能,造成磁盘输入输出(InputOutput,简称:IO)的消耗,尤其是向磁盘写入大量Map处理结果,从磁盘中读取大量Map处理结果时,会严重降低Map节点的处理性能,影响业务体验。
技术实现思路
有鉴于此,本申请提供一种数据处理方法和装置,用以提高Map节点的处理性能,减少磁盘IO的消耗,提高Map节点的运行效率,提高业务体验。在第一方面,本申请提供一种数据处理方法,应用于Map节点,所述方法包括:从子数据集中获取多个待处理数据;对所述多个待处理数据分别进行Map处理,得到多个Map处理结果;针对得到的每个Map处理结果,将所述Map处理结果发送给对应的Reduce节点,以使所述Reduce节点根据Map处理结果进行Reduce处理。结合第一方面,在第一种可能的实现方式中,所述将所述Map处理结果发送给对应的Reduce节点之前,所述方法还包括:判断所述Map节点对应的缓冲区内存储的Map处理结果数量是否已经达到预设的数量阈值;如果所述缓冲区内存储的Map处理结果数量已经达到所述数量阈值,则将所述Map处理结果发送给所述Reduce节点;如果所述缓冲区内存储的Map处理结果数量未达到所述数量阈值,则将所述Map处理结果写入到所述缓冲区内。结合第一方面,在第二种可能的实现方式中,所述将所述Map处理结果发送给对应的Reduce节点,具体包括:从所有Reduce节点中确定用于接收所述Map处理结果的Reduce节点;在所述Map节点与所述Reduce节点之间建立通信连接;通过所述通信连接将所述Map处理结果发送给所述Reduce节点。结合第一方面,在第三种可能的实现方式中,所述从所有Reduce节点中确定用于接收所述Map处理结果的Reduce节点,具体包括:从所有Reduce节点中选择一个Reduce节点;将选择出的Reduce节点确定为用于接收所述Map处理结果的Reduce节点;或者,向Master节点发送节点请求消息;接收所述Master节点返回的节点响应消息,所述节点响应消息携带所述Master节点从所有Reduce节点中选择的Reduce节点的标识;将选择出的Reduce节点的标识对应的Reduce节点,确定为用于接收所述Map处理结果的Reduce节点;或者,向Master节点发送携带所述Map节点的标识的节点请求消息,以使所述Master节点从所有Reduce节点中选择一个Reduce节点,并将所述Map节点的标识发送给选择出的Reduce节点;在接收到所述选择出的Reduce节点根据所述Map节点的标识发送的连接消息时,将发送所述连接消息的Reduce节点,确定为用于接收所述Map处理结果的Reduce节点。结合第一方面,在第四种可能的实现方式中,所述Map节点从所有Reduce节点中选择一个Reduce节点,具体包括:获取所有Reduce节点中的每个Reduce节点的负载情况;根据每个Reduce节点的负载情况,从所有Reduce节点中选择负载最轻的一个Reduce节点。在第二方面,本申请提供一种数据处理装置,应用于Map节点,所述装置包括:获取模块,用于从子数据集中获取多个待处理数据;处理模块,用于对所述多个待处理数据分别进行Map处理,得到多个Map处理结果;发送模块,用于针对得到的每个Map处理结果,将所述Map处理结果发送给对应的Reduce节点,以使所述Reduce节点根据Map处理结果进行Reduce处理。结合第二方面,在第一种可能的实现方式中,所述装置还包括:判断模块,用于判断所述Map节点对应的缓冲区内存储的Map处理结果数量是否已经达到预设的数量阈值;所述发送模块还用于,如果所述缓冲区内存储的Map处理结果数量已经达到所述数量阈值,则将所述Map处理结果发送给所述Reduce节点;所述装置还包括:写入模块,用于如果所述缓冲区内存储的Map处理结果数量未达到所述数量阈值,则将所述Map处理结果写入到所述缓冲区内。结合第二方面,在第二种可能的实现方式中,所述发送模块,具体用于在将所述Map处理结果发送给对应的Reduce节点时,从所有Reduce节点中确定用于接收所述Map处理结果的Reduce节点;在所述Map节点与所述Reduce节点之间建立通信连接;通过所述通信连接将所述Map处理结果发送给所述Reduce节点。结合第二方面,在第三种可能的实现方式中,所述发送模块,具体用于在从所有Reduce节点中确定用于接收所述Map处理结果的Reduce节点时,从所有Reduce节点中选择一个Reduce节点;将选择出的Reduce节点确定为用于接收所述Map处理结果的Reduce节点;或者,所述发送模块,具体用于在从所有Reduce节点中确定用于接收所述Map处理结果的Reduce节点时,向Master节点发送节点请求消息;接收所述Master节点返回的节点响应消息,所述节点响应消息携带所述Master节点从所有Reduce节点中选择的Reduce节点的标识;将选择出的Reduce节点的标识对应的Reduce节点,确定为用于接收所述Map处理结果的Reduce节点;或者,所述发送模块,具体用于在从所有Reduce节点中确定用于接收所述Map处理结果的Reduce节点时,向Master节点发送携带所述Map节点的标识的节点请求消息,以使所述Master节点从所有Reduce节点中选择一个Reduce节点,并将所述Map节点的标识发送给选择出的Reduce节点;在接收到所述选择出的Reduce节点根据所述Map节点的标识发送的连接消息时,将发送所述连接消息的Reduce节点,确定为用于接收所述Map处理结果的Reduce节点。结合第二方面,在第四种可能的实现方式中,所述发送模块,具体用于在从所有Reduce节点中选择一个Reduce节点时本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,应用于映射Map节点,所述方法包括:从子数据集中获取多个待处理数据;对所述多个待处理数据分别进行Map处理,得到多个Map处理结果;针对得到的每个Map处理结果,将所述Map处理结果发送给对应的归约Reduce节点,以使所述Reduce节点根据Map处理结果进行Reduce处理。

【技术特征摘要】
1.一种数据处理方法,其特征在于,应用于映射Map节点,所述方法包括:从子数据集中获取多个待处理数据;对所述多个待处理数据分别进行Map处理,得到多个Map处理结果;针对得到的每个Map处理结果,将所述Map处理结果发送给对应的归约Reduce节点,以使所述Reduce节点根据Map处理结果进行Reduce处理。2.根据权利要求1所述的方法,其特征在于,所述将所述Map处理结果发送给对应的归约Reduce节点之前,所述方法还包括:判断所述Map节点对应的缓冲区内存储的Map处理结果数量是否已经达到预设的数量阈值;如果所述缓冲区内存储的Map处理结果数量已经达到所述数量阈值,则将所述Map处理结果发送给所述Reduce节点;如果所述缓冲区内存储的Map处理结果数量未达到所述数量阈值,则将所述Map处理结果写入到所述缓冲区内。3.根据权利要求1所述的方法,其特征在于,所述将所述Map处理结果发送给对应的归约Reduce节点,具体包括:从所有Reduce节点中确定用于接收所述Map处理结果的Reduce节点;在所述Map节点与所述Reduce节点之间建立通信连接;通过所述通信连接将所述Map处理结果发送给所述Reduce节点。4.根据权利要求3所述的方法,其特征在于,所述从所有Reduce节点中确定用于接收所述Map处理结果的Reduce节点,具体包括:从所有Reduce节点中选择一个Reduce节点;将选择出的Reduce节点确定为用于接收所述Map处理结果的Reduce节点;或者,向主Master节点发送节点请求消息;接收所述Master节点返回的节点响应消息,所述节点响应消息携带所述Master节点从所有Reduce节点中选择的Reduce节点的标识;将选择出的Reduce节点的标识对应的Reduce节点,确定为用于接收所述Map处理结果的Reduce节点;或者,向Master节点发送携带所述Map节点的标识的节点请求消息,以使所述Master节点从所有Reduce节点中选择一个Reduce节点,并将所述Map节点的标识发送给选择出的Reduce节点;在接收到所述选择出的Reduce节点根据所述Map节点的标识发送的连接消息时,将发送所述连接消息的Reduce节点,确定为用于接收所述Map处理结果的Reduce节点。5.根据权利要求4所述的方法,其特征在于,所述从所有Reduce节点中选择一个Reduce节点,具体包括:获取所有Reduce节点中的每个Reduce节点的负载情况;根据每个Reduce节点的负载情况,从所有Reduce节点中选择负载最轻的一个Reduce节点。6.一种数据处理装置,其特征在于,应用于映射Map节点,所述装置包括:获取模块,用于从子数据集中获取多个待处理数据;处理模块,用于对所述多...

【专利技术属性】
技术研发人员:王二帅
申请(专利权)人:新华三大数据技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1