优化MapReduce计算的方法、装置、设备和计算机存储介质制造方法及图纸

技术编号:21476931 阅读:44 留言:0更新日期:2019-06-29 04:39
本发明专利技术提供了一种优化MapReduce计算的方法、装置、设备和计算机存储介质,其中所述方法包括:在各Map任务全部运行完毕之后,获取各Reduce任务需要处理的数据量;根据所述各Reduce任务需要处理的数据量,按照数据量从大到小的顺序对各Reduce任务进行排序;根据排序结果依次启动各Reduce任务,在各Reduce任务全部运行完毕后完成MapReduce计算。本发明专利技术能够缩短MapReduce计算的运行时间、提高MapReduce计算的运行效率。

【技术实现步骤摘要】
优化MapReduce计算的方法、装置、设备和计算机存储介质
本专利技术涉及数据处理
,尤其涉及一种优化MapReduce计算的方法、装置、设备和计算机存储介质。
技术介绍
MapReduce一直是开源大数据平台Hadoop的组成部分,它是一种分布式计算模型,主要用于搜索领域,用于解决海量数据的计算问题。但是,现有技术在使用MapReduce进行计算时,尤其在MapReduce计算的Reduce阶段,通常会采用以随机顺序来启动各Reduce任务的方式。但由于Reduce阶段存在多个Reduce任务,采用随机顺序来启动各个Reduce任务的方式,会极容易导致MapReduce计算出现问题,且还会造成MapReduce计算的运行时间较长、运行效率较低的问题。
技术实现思路
有鉴于此,本专利技术提供了一种优化MapReduce计算的方法、装置、设备和计算机存储介质,用于缩短MapReduce计算的运行时间,提升MapReduce计算的运行效率。本专利技术为解决技术问题所采用的技术方案是提供一种优化MapReduce计算的方法,所述方法包括:在各Map任务全部运行完毕之后,获取各Reduce任务需要处理的数据量;根据所述各Reduce任务需要处理的数据量,按照数据量从大到小的顺序对各Reduce任务进行排序;根据排序结果依次启动各Reduce任务,在各Reduce任务全部运行完毕后完成MapReduce计算。根据本专利技术一优选实施例,在获取各Reduce任务需要处理的数据量之前,还包括:获取当前Reduce任务的数量;确定所述当前Reduce任务的数量是否超过预设阈值,若超过,则执行获取各Reduce任务需要处理的数据量的操作,否则不执行。根据本专利技术一优选实施例,在获取各Reduce任务需要处理的数据量之前,还包括:确定优化启用参数的值是否为预设值;若所述优化启用参数的值为预设值,则执行获取各Reduce任务需要处理的数据量的操作,否则不执行。根据本专利技术一优选实施例,所述根据排序结果依次启动各Reduce任务包括:确定各Reduce任务对应的内存资源;将所确定的内存资源分配至各Reduce任务之后,根据排序结果依次启动各Reduce任务。根据本专利技术一优选实施例,所述确定各Reduce任务对应的内存资源包括:将预设的资源容量确定为各Reduce任务对应的内存资源;或者根据各Reduce任务需要处理的数据量确定各Reduce任务对应的内存资源。根据本专利技术一优选实施例,所述根据各Reduce任务需要处理的数据量确定各Reduce任务对应的内存资源包括:根据所述排序结果依次取出一个Reduce任务;确定所取出的Reduce任务需要处理的数据量是否大于等于预设的数据量阈值,若是,则根据该Reduce任务需要处理的数据量计算其对应的内存资源;若否,则将该Reduce任务与其他Reduce任务进行合并,并根据合并得到的Reduce任务需要处理的数据量计算其对应的内存资源;依次处理完全部的Reduce任务后,得到各Reduce任务对应的内存资源。根据本专利技术一优选实施例,将所取出的Reduce任务与其他Reduce任务进行合并包括:计算所述数据量阈值与所取出的Reduce任务需要处理的数据量之间的数据量差值,并确定所述数据量差值是否大于等于排序结果中最后一个Reduce任务需要处理的数据量;若是,从剩余的Reduce任务中选择一个需要处理的数据量小于等于所述数据量差值的Reduce任务之后,再计算数据量阈值与所选择的两个Reduce任务需要处理的数据量之间的数据量差值;确定所述数据量差值是否大于等于排序结果中最后一个Reduce任务需要处理的数据量,以此循环,直至计算得到的数据量差值小于排序结果中最后一个Reduce任务需要处理的数据量,则将选择出的多个Reduce任务合并为一个Reduce任务。本方面为解决技术问题所采用的技术方案是提供一种优化MapReduce计算的装置,所述装置包括:获取单元,用于在各Map任务全部运行完毕之后,获取各Reduce任务需要处理的数据量;排序单元,用于根据所述各Reduce任务需要处理的数据量,按照数据量从大到小的顺序对各Reduce任务进行排序;处理单元,用于根据排序结果依次启动各Reduce任务,在各Reduce任务全部运行完毕后完成MapReduce计算。根据本专利技术一优选实施例,所述获取单元在获取各Reduce任务需要处理的数据量之前,还执行:获取当前Reduce任务的数量;确定所述当前Reduce任务的数量是否超过预设阈值,若超过,则执行获取各Reduce任务需要处理的数据量的操作,否则不执行。根据本专利技术一优选实施例,所述获取单元在获取各Reduce任务需要处理的数据量之前,还执行:确定优化启用参数的值是否为预设值;若所述优化启用参数的值为预设值,则执行获取各Reduce任务需要处理的数据量的操作,否则不执行。根据本专利技术一优选实施例,所述处理单元在根据排序结果依次启动各Reduce任务时,具体执行:确定各Reduce任务对应的内存资源;将所确定的内存资源分配至各Reduce任务之后,根据排序结果依次启动各Reduce任务。根据本专利技术一优选实施例,所述处理单元在确定各Reduce任务对应的内存资源时,具体执行:将预设的资源容量确定为各Reduce任务对应的内存资源;或者根据各Reduce任务需要处理的数据量确定各Reduce任务对应的内存资源。根据本专利技术一优选实施例,所述处理单元在根据各Reduce任务需要处理的数据量确定各Reduce任务对应的内存资源时,具体执行:根据所述排序结果依次取出一个Reduce任务;确定所取出的Reduce任务需要处理的数据量是否大于等于预设的数据量阈值,若是,则根据该Reduce任务需要处理的数据量计算其对应的内存资源;若否,则将该Reduce任务与其他Reduce任务进行合并,并根据合并得到的Reduce任务需要处理的数据量计算其对应的内存资源;依次处理完全部的Reduce任务后,得到各Reduce任务对应的内存资源。根据本专利技术一优选实施例,所述处理单元在将所取出的Reduce任务与其他Reduce任务进行合并时,具体执行:计算所述数据量阈值与所取出的Reduce任务需要处理的数据量之间的数据量差值,并确定所述数据量差值是否大于等于排序结果中最后一个Reduce任务需要处理的数据量;若是,从剩余的Reduce任务中选择一个需要处理的数据量小于等于所述数据量差值的Reduce任务之后,再计算数据量阈值与所选择的两个Reduce任务需要处理的数据量之间的数据量差值;确定所述数据量差值是否大于等于排序结果中最后一个Reduce任务需要处理的数据量,以此循环,直至计算得到的数据量差值小于排序结果中最后一个Reduce任务需要处理的数据量,则将选择出的多个Reduce任务合并为一个Reduce任务。由以上内容可以看出,本专利技术通过获取各Reduce任务需要处理的数据量之后,根据数据量从大到小的顺序对各Reduce任务进行排序,从而根据排序结果依次启动各Reduce任务,能够有效地避免以随机顺序来启动Reduce任务造成的计算失败的问题,并能够缩短Ma本文档来自技高网...

【技术保护点】
1.一种优化MapReduce计算的方法,其特征在于,所述方法包括:在各Map任务全部运行完毕之后,获取各Reduce任务需要处理的数据量;根据所述各Reduce任务需要处理的数据量,按照数据量从大到小的顺序对各Reduce任务进行排序;根据排序结果依次启动各Reduce任务,在各Reduce任务全部运行完毕后完成MapReduce计算。

【技术特征摘要】
1.一种优化MapReduce计算的方法,其特征在于,所述方法包括:在各Map任务全部运行完毕之后,获取各Reduce任务需要处理的数据量;根据所述各Reduce任务需要处理的数据量,按照数据量从大到小的顺序对各Reduce任务进行排序;根据排序结果依次启动各Reduce任务,在各Reduce任务全部运行完毕后完成MapReduce计算。2.根据权利要求1所述的方法,其特征在于,在获取各Reduce任务需要处理的数据量之前,还包括:获取当前Reduce任务的数量;确定所述当前Reduce任务的数量是否超过预设阈值,若超过,则执行获取各Reduce任务需要处理的数据量的操作,否则不执行。3.根据权利要求1所述的方法,其特征在于,在获取各Reduce任务需要处理的数据量之前,还包括:确定优化启用参数的值是否为预设值;若所述优化启用参数的值为预设值,则执行获取各Reduce任务需要处理的数据量的操作,否则不执行。4.根据权利要求1所述的方法,其特征在于,所述根据排序结果依次启动各Reduce任务包括:确定各Reduce任务对应的内存资源;将所确定的内存资源分配至各Reduce任务之后,根据排序结果依次启动各Reduce任务。5.根据权利要求4所述的方法,其特征在于,所述确定各Reduce任务对应的内存资源包括:将预设的资源容量确定为各Reduce任务对应的内存资源;或者根据各Reduce任务需要处理的数据量确定各Reduce任务对应的内存资源。6.根据权利要求5所述的方法,其特征在于,所述根据各Reduce任务需要处理的数据量确定各Reduce任务对应的内存资源包括:根据所述排序结果依次取出一个Reduce任务;确定所取出的Reduce任务需要处理的数据量是否大于等于预设的数据量阈值,若是,则根据该Reduce任务需要处理的数据量计算其对应的内存资源;若否,则将该Reduce任务与其他Reduce任务进行合并,并根据合并得到的Reduce任务需要处理的数据量计算其对应的内存资源;依次处理完全部的Reduce任务后,得到各Reduce任务对应的内存资源。7.根据权利要求6所述的方法,其特征在于,将所取出的Reduce任务与其他Reduce任务进行合并包括:计算所述数据量阈值与所取出的Reduce任务需要处理的数据量之间的数据量差值,并确定所述数据量差值是否大于等于排序结果中最后一个Reduce任务需要处理的数据量;若是,从剩余的Reduce任务中选择一个需要处理的数据量小于等于所述数据量差值的Reduce任务之后,再计算数据量阈值与所选择的两个Reduce任务需要处理的数据量之间的数据量差值;确定所述数据量差值是否大于等于排序结果中最后一个Reduce任务需要处理的数据量,以此循环,直至计算得到的数据量差值小于排序结果中最后一个Reduce任务需要处理的数据量,则将选择出的多个Reduce任务合并为一个Reduce任务。8.一种优化MapReduce计算的装置,其特征在于,所述装置包括:获取单元,用于在各Map任务全部运行完毕之后,获取各Reduce任务需要处理的数据量;排序单元,用于根据所述各Reduce任务需要处理的数据量,按照数据量从大到小的顺序对各Re...

【专利技术属性】
技术研发人员:侯志贞
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

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

1