[发明专利]一种基于多线程的MapReduce执行系统有效
申请号: | 201310602222.6 | 申请日: | 2013-11-25 |
公开(公告)号: | CN103605576A | 公开(公告)日: | 2014-02-26 |
发明(设计)人: | 石宣化;金海;陈明;吴松;陆路 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 朱仁玲 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 多线程 mapreduce 执行 系统 | ||
技术领域
本发明属于大数据分布式计算领域,更具体地,涉及一种I/O高效的MapReduce执行系统。
背景技术
通用的Hadoop系统是普及最广的一个MapReduce开源系统,它以多进程的方式运行任务,各个任务在运行时没有任何联系,管理上的简单导致了资源的粗放使用。目前系统普遍场景就是多个CPU与多块磁盘将内存划分成不同的独立分区来运行程序。CPU资源严重过剩,但是调度却以CPU为核心,极大增加了系统的等待时间;内存使用相互隔离,而且Reduce的执行必须等到所有Map完成之后才能开始,内存浪费严重;同时磁盘读写不合理,并行访问磁盘,降低了磁盘效率。节点的性能无法达到理论上的最大值,且相去甚远,主要的原因就是硬件资源的配置不协调,各部件都是分散的工作没有协调统一的管理。学术界和企业界对这类问题也进行了一些积极探索。
MapReduce Online系统中最明显的改进就是提前了Reduce进程的执行时间,平衡了Map与Reduce任务之间的资源使用空隙,提高了系统的资源利用率。但是这也只是一种粗粒度的管理,杯水车薪,没有解决根本问题。
One-Pass系统缓解了内存不足的问题,通过使用hash的方式代替Merge Sort,减小了系统对内存的需求,避开了内存管理这个问题,而且它改变了原来的排序属性,减小了系统的使用范围。
ThemisMR系统首先在硬件上进行定制,争取达到硬件之间的顺滑。其次在软件层次主要有两点儿创新。一是将I/O读写次数控制到2次,避免了频繁的I/O读写对性能的影响;二是动态的自适应的内存分配使不同种类的任务得到最优的内存分配。但它是用C++重写的MapReduce计算系统,在可用性,容错性等方面不能同Hadoop相比,而且也丧失了现有程序的兼容性,很难得到广泛使用。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种基于多线程的MapReduce执行系统,旨在解决现有方法中存在的高成本、低效率、高门槛、以及可用性差的问题。
为实现上述目的,本发明提供了一种基于多线程的MapReduce执行系统,包括:
(1)MapReduce多线程任务执行模块,采用多线程方式执行Hadoop中的Map/Reduce任务;
(2)细粒度任务执行模块,用于提取Map任务和Reduce任务的内存使用特征,并根据这些特征将MapReduce流程分为多个阶段,并且,采用Map主动推送方式进行Hadoop的shuffle过程;
(3)内存管理模块,用于统一管理各个任务线程对内存的使用,包括动态分配和回收各个任务执行过程中使用的内存;
(4)I/O管理模块,用于统一管理各个任务线程在执行过程中对本地磁盘的读写请求,最小化磁盘I/O等待时间。
与现有技术相比,本方法具有以下的有益效果:
(1)细粒度的资源管理
将Map任务和Reduce任务对资源的使用情况细分成几个阶段,在每个阶段都有对资源的释放和回收,并对每个阶段设置不同的优先级。在出现资源争用时可首先根据不同优先级来分配资源,而在同等优先级的资源请求间分配时遵循FIFO原则。
(2)高效的资源共享机制
由于资源管理器和各个任务都执行进程的各个线程,各个任务对资源的共享可以在统一的地址空间内直接实现,避免了消息传递和资源拷贝的开销。采用分层的资源管理机制,尽可能减轻最顶层的资源管理压力,下放资源管理负担给下层调度器,以此来减少资源的竞争。
(3)良好的可扩展性和兼容性
本系统为资源申请,分配,回收都提供了统一的接口,调度算法的实现也是可配置的。用户可根据实际情况对资源管理进行扩展升级。Hadoop原有的接口并没有改变,而且对于各个任务的执行线程做了类加载器的隔离,避免了静态变量的相互干扰,因此原有的MapReduce程序可以不做任何修改直接运行在本系统上。
(4)保有原Hadoop的高可用性,容错性
本发明仅对Hadoop的执行部分进行优化,其他部分未作改变,因此原有Hadoop优良特性都能继续发挥作用。每个Map任务的中间结果依然是写磁盘的,在Reduce失效时,仍然能够仅重启该Reduce任务即可。此外本系统通过杀死任务相关线程的方式来杀死任务,仍然支持原有Hadoop的投机性执行系统。
附图说明
图1是多线程MapReduce执行系统的整体结构图。
图2是内存管理模块的结构示意图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310602222.6/2.html,转载请声明来源钻瓜专利网。