• 针对Hadoop MapReduce中混洗阶段的优化系统及方法

    • 摘要:

      本发明提供了一种针对Hadoop MapReduce中混洗阶段的优化系统,该优化系统以守护进程方式运行在Hadoop MapReduce的工作节点以及主节点中,并使用进程间通信以及远程过程调用的方式与Hadoop MapReduce进行通信.同时提供了一种基于上述优化系统实现的优化方法.本发明所提供的优化系统运行后接管Hadoop MapReduce任务运行中的所有中间数据,通过利用预先合并以及预先混洗的方式,一方面合理利用了Map阶段的空闲网络带宽,另一方面在合并同节点中的中间数据后有效减少小文件读写,从而优化了MapReduce任务的完成时间.

    • 专利类型:

      发明专利

    • 申请/专利号:

      CN201910627734.5

    • 申请日期:

      2019.07.12

    • 公开/公告号:

      CN110502337A

    • 公开/公告日:

      2019-11-26

    • 发明人:

      管海兵 吴仲轩 任锐 戚正伟

    • 申请人:

      上海交通大学

    • 主分类号:

      G06F9/50(2006.01),G,G06,G06F,G06F9

    • 分类号:

      G06F9/50(2006.01),G06F16/18(2019.01),G,G06,G06F,G06F9,G06F16,G06F9/50,G06F16/18

    • 主权项:

      1.一种针对Hadoop MapReduce中混洗阶段的优化系统,其特征在于,包括系统主节点和系统工作节点;其中: 所述系统主节点包括:调度器模块以及通讯模块a,所述调度器模块用于调度分区文件进行提前合并的时间、提前混洗的时间以及混洗结果的去处;所述通讯模块a使用进程间通信以及远程过程调用实现系统主节点与Hadoop MapReduce主节点和系统工作节点之间的通讯; 所述系统工作节点包括:混洗处理模块以及通讯模块b,所述混洗处理模块将同节点上的所有临时文件提前合并成一个大的临时文件,并根据调度器模块指示的时间对大的临时文件进行提前混洗;所述通讯模块b使用进程间通信以及远程过程调用实现系统工作节点与系统主节点和Hadoop MapReduce工作节点之间的通讯. 2.根据权利要求1所述的针对Hadoop MapReduce中混洗阶段的优化系统,其特征在于,所述优化系统以守护进程的方式运行在Hadoop MapReduce的工作节点中. 3.一种针对Hadoop MapReduce中混洗阶段的优化方法,其特征在于,采用权利要求1或2中任一项所述的优化系统,包括: 提前合并过程:混洗处理模块向Hadoop MapReduce工作节点获取Map计算结果的临时文件路径,每当监听到一个Map子任务完成,混洗处理模块触发一次提前合并,将新获取的临时文件与上一次提前合并的结果合并;混洗处理模块重复进行上述过程,最终将该Hadoop MapReduce工作节点的文件系统中的所有临时文件合并为一个中间数据文件; 提前混洗过程:当同一批运行的Map子任务完成并完成提前合并后,混洗处理模块触发提前混洗;混洗处理模块根据调度器模块指示,将中间数据文件混洗到指定HadoopMapReduce工作节点. 4.根据权利要求3所述的针对Hadoop MapReduce中混洗阶段的优化方法,其特征在于,在提前合并过程前,还包括如下过程: 在接收到提交的新任务后,Hadoop MapReduce将使用进程间通信通知调度器模块,调度器模块通知所有的系统工作节点,系统工作节点开始监听Hadoop MapReduce工作节点中的子任务完成情况. 5.根据权利要求3所述的针对Hadoop MapReduce中混洗阶段的优化方法,其特征在于,在提前混洗过程后,还包括如下过程: 在Reduce子任务启动后,混洗处理模块通知该Reduce子任务中间数据文件的路径;Reduce子任务将直接从本地文件系统顺序读取中间数据文件并进行计算.