[发明专利]数据传输方法、装置、计算机设备及存储介质在审
申请号: | 202011001056.0 | 申请日: | 2020-09-22 |
公开(公告)号: | CN112181618A | 公开(公告)日: | 2021-01-05 |
发明(设计)人: | 王森 | 申请(专利权)人: | 北京金山云网络技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/54 |
代理公司: | 北京开阳星知识产权代理有限公司 11710 | 代理人: | 袁义科 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据传输 方法 装置 计算机 设备 存储 介质 | ||
本公开实施例涉及一种数据传输方法、装置、计算机设备及存储介质,通过建立消息队列,当有Map任务完成时,将Map任务的输出数据加入到消息队列中,并按照输出数据在消息队列中的排序,将输出数据传输给相应的Reduce任务,实现了一种基于MapReduce框架的数据异步传输方式,提高了MapReduce的数据处理效率,解决了相关技术易发生网络拥堵的问题。
技术领域
本公开实施例涉及大数据技术领域,尤其涉及一种数据传输方法、装置、计算机设备及存储介质。
背景技术
MapReduce是一种分布式计算框架,主要通过“映射”任务(或者也可以称为Map任务)和“规约”任务(或者也可以称为Reduce任务)进行大规模的数据处理和计算。
在相关技术中将Map任务和Reduce任务之间的数据传输过程称为“洗牌”过程(或者也可以称为Shuffle过程)。在该过程中,只有在全部Map任务完成后,才会将全部Map任务的输出数据一次性写入本地磁盘,Reduce任务只有全部数据被写入本地磁盘后才能够从磁盘中读取数据,并执行相应的任务。
但是由于相关技术中Reduce任务必须等待所有Map任务全部完成后才能执行,因而会导致数据处理效率低的问题,并且一次性将大量数据写入本地磁盘也会对网络造成拥堵。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种数据传输方法、装置、计算机设备及存储介质。
本公开实施例第一方面提供了一种数据传输方法,该方法包括:
建立消息队列;响应于监测到有Map任务完成,将该Map任务的输出数据加入到消息队列中;根据该Map任务的输出数据在消息队列中的排序,将输出数据传输给相应的Reduce任务。
在一种实施方式中,所述建立消息队列,包括:
基于Reduce任务的个数,建立相应个数的分区;在每个分区中建立一个消息队列,并建立所述消息队列与所述Reduce任务之间的一一对应关系。
在一种实施方式中,所述Map任务的输出数据中包括所述Map任务对应的字段和所述Map任务的执行结果;所述将所述Map任务的输出数据加入到所述消息队列中,包括:
根据所述Map任务对应的所述字段,确定所述Map任务对应的目标消息队列,所述目标消息队列是指用于处理所述Map任务的Reduce任务所对应的消息队列;将所述Map任务的输出数据加入到所述目标消息队列中。
在一种实施方式中,所述根据所述Map任务对应的所述字段,确定所述Map任务对应的目标消息队列,包括:
计算所述字段的哈希值与Reduce任务个数的商的余数;基于所述余数与消息队列之间的对应关系,确定所述Map任务对应的目标消息队列。
在一种实施方式中,所述响应于监测到有Map任务完成,将所述Map任务的输出数据加入到所述消息队列中之前,所述方法还包括:
基于所有Map任务建立Map任务列表,所述Map任务列表中包括各Map任务的完成状态,以及未完成任务的数量。
在一种实施方式中,所述将所述Map任务的输出数据加入到所述消息队列中之后,所述方法还包括:
更新所述Map任务列表中未完成任务的数量。
在一种实施方式中,所述将所述输出数据传输给相应的Reduce任务之后,所述方法还包括:
响应于监测到所述Map任务列表中未完成的任务数量为0,关闭所有消息队列。
在一种实施方式中,所述将所述输出数据传输给相应的Reduce任务之前,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山云网络技术有限公司,未经北京金山云网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011001056.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种筷子依次取出设备
- 下一篇:一种锻造斗齿铸锻淬一体化生产工艺