发明名称 一种适合迭代计算的MapReduce优化方法
摘要 本发明公开了一种适合迭代计算的MapReduce优化方法,是应用在一种Hadoop集群系统中,该集群系统包括一个主节点以及多个从节点,所述方法包括:主节点接收用户提交的多个Hadoop作业,主节点的作业服务进程将作业放入作业队列中,并等待主节点的作业调度器进行作业调度,主节点等待从节点发来的任务请求,并在接收到任务请求后,主节点的作业调度器优先调度本地化任务,如果在发出任务请求的从节点上没有本地化任务,则根据Hadoop作业的任务类型进行预测调度。本发明能够支持传统数据密集型应用,又能够透明高效地支持迭代计算,并分别从动态数据和静态数据两个方面进行研究并实现数据传输量的减少。
申请公布号 CN103617087B 申请公布日期 2017.04.26
申请号 CN201310600745.7 申请日期 2013.11.25
申请人 华中科技大学 发明人 金海;郑然;余根茂;章勤;朱磊
分类号 G06F9/50(2006.01)I 主分类号 G06F9/50(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种适合迭代计算的MapReduce优化方法,是应用在一种Hadoop集群系统中,该集群系统包括一个主节点以及多个从节点,其特征在于,所述方法包括以下步骤:(1)主节点接收用户提交的多个Hadoop作业,主节点的作业服务进程将作业放入作业队列中,并等待主节点的作业调度器进行作业调度;(2)主节点等待从节点发来的任务请求,并在接收到任务请求后,主节点的作业调度器优先调度本地化任务,如果在发出任务请求的从节点上没有本地化任务,则根据Hadoop作业的任务类型进行预测调度,针对计算型任务直接对该Hadoop作业进行调度,针对传输型任务则延迟一定间隔,当总延迟时间间隔达到延迟阈值时才对该Hadoop作业进行调度,其中,计算型任务是指任务的计算时间在Map任务的全部处理过程里占主要部分的任务,传输型任务是指任务的数据传输时间在Map任务的全部处理过程中占主要部分的任务;其中,步骤(2)具体包括以下子步骤:(2‑1)主节点上的作业服务进程监控并等待从节点上的任务服务进程发送来的心跳信息,该心跳信息包括当前从节点的运行信息,具体包括总槽数和当前正在运行的槽数;(2‑2)主节点在接收到从节点发来的心跳信息后,根据该心跳信息计算当前从节点的空闲槽数和整个Hadoop集群系统的平均运行槽数,根据计算的结果判断是否需要向当前从节点分配该作业的任务,如果不需要分配任务,则返回步骤(2‑1),否则执行步骤(2‑3);(2‑3)设置计数器i=0;(2‑4)判断第i个Hadoop作业是否在当前从节点有本地化任务,即当前从节点是否存储有第i个Hadoop作业的输入数据分片(Split),若没有则转入步骤(2‑5),若有则转入步骤(2‑11);(2‑5)设置i=i+1,并判断i是否等于Hadoop作业的个数,若等于则进入步骤(2‑7),否则返回步骤(2‑4);(2‑6)设置计数器j=0;(2‑7)判断第j个Hadoop作业的任务类型是计算型任务还是传输型任务,若为计算型任务,则进入步骤(2‑11),若为传输型任务,则进入步骤(2‑8);(2‑8)将第j个Hadoop作业的任务调度延迟一个心跳时间;(2‑9)判断第j个Hadoop作业任务调度的总延迟时间是否达到一个阈值,若达到,则转入步骤(2‑11),否则转入步骤(2‑10);(2‑10)设置j=j+1,并判断j是否等于Hadoop作业的个数,若等于则进入步骤(2‑12),否则返回步骤(2‑1);(2‑11)将第i个Hadoop作业的本地化任务调度到当前从节点,然后过程结束;(2‑12)对第j个Hadoop作业的任务调度到当前从节点,然后过程结束;(3)从节点在接收到主节点调度的Hadoop作业的任务后,判断Hadoop作业类型进行不同处理,作业类型分为迭代型和非迭代型两种,针对非迭代型作业按照Hadoop的常规处理方式进行处理,针对迭代型作业,在Map阶段之前增加Map端混洗过程,用于为Map任务读取动态数据,在Reduce阶段,将动态数据进行本地缓存并交由从节点的动态数据缓存组件管理,并在作业处理完毕后将最终的处理结果保存在HDFS中。
地址 430074 湖北省武汉市洪山区珞喻路1037号