论文部分内容阅读
MapReduce是对海量数据并行处理的编程模型,云计算中的很多重要问题比如搜索引擎服务、庞大的科学计算任务,海量数据的挖掘等都可以通过MapReduce来解决,MapReduce编程模型在云计算中起着至关重要的作用。随着MapReduce越来越多的应用到各个领域,MapReduce的性能问题也得到了学者的关注,同时随着可视化技术的发展,性能优化过程和结果的可视化、学习过程可视化等问题也成了近几年的研究热点。Hadoop作为Google公司Map Reduce编程模型最受欢迎的Java开源实现,使之成为研究MapReduce最重要的平台,本文的性能优化及可视化工具的开发就是基于此平台展开研究的。Hadoop平台在运算过程中作业的调度方式起着至关重要的作用,一个好的作业调度算法可以使作业被执行的顺序、资源被分配的情况更加科学高效,可以提高Hadoop平台的计算性能和资源使用率。首先,在性能优化方面,本文对传统的FIFO算法(First In First Out)进行了研究,发现它没有很好地实现数据的本地性,作业规模很小时会出现数据本地性明显不好的问题,故对FIFO算法进行了改进以提高数据本地性。其次,搭建了Hadoop云计算平台,对文中改进的算法和原始的FIFO算法进行了对比实验和结果分析,结果表明改进的算法提高了作业的数据本地性,节省了本地任务的数据传输时间,从而减少了所有作业的总完成时间:提高了系统的吞吐率。在可视化方面,本文开发了可视化工具,分别应用在性能可视化、学习可视化两个方面。(1)性能可视化:本文基于以上研究结果,将性能优化结果的可视化加入了Hadoop可视化管理平台,从而开发出一款基于性能优化的可视化工具,使用户可以对结果数据进行可视化操作,该模块支持用户选择不同的展现形式,不同的展示平台等。同时为了兼容更多地性能优化方法,通过暴露接口的方式支持功能的扩展。(2)学习可视化:本文面向云计算学习者,开发了一款可视化学习工具——云计算虚拟实验教学系统。系统中包含12个云计算系列实验,主要分为云计算基础知识类和实践交互类,并将这些实验以虚拟化的方式展现出来。在实验设计中充分发挥虚拟实验的交互性、沉浸性和想象性的优势,弥补课堂和实验教学的不足,打破空间与时间的限制,帮助学生了解云计算的基础知识与Hadoop的基本组成和技术原理。虚拟实验开发采用Java技术与Flash技术相结合的方式,并用视频加以佐证,使学生在实验前能够充分了解实验的所有细节。更重要的是,实验模拟了一些常见的错误,并给出了处理方法,使同学们在进行实验时能够及时应对这些错误,避免实际操作时对实验设备造成损害。