论文部分内容阅读
随着网络和科技的快速发展,云计算正在成为21世纪信息领域最热门的话题,云计算虽然发展迅速,但仍在起步阶段,在各种云计算框架和工具中,Hadoop以其开源性高拓展性高可靠性以及高效的性能使其广受欢迎,并大大的推动了云计算和相关领域的进步越来越多的企业已经开始基于Hadoop构建自己的云计算系统,并出现了大量的第三方云计算系统,而对于大多数中小企业以及个人开发者而言,不可能有自己的云计算系统,他们往往将自己的程序运行在第三方系统上,并且根据程序运行时间来付费,而在提交程序之前,往往需要进行程序性能的评估从而计算应付的费用即使对于有自己集群的企业和机构而言,在正式产品上线之前,也需要对产品进行反复测试,以考量自己程序的运行时间,而这些都是不可能在真实集群上来进行的,因此也需要一个测试的系统,来评估程序在Hadoop集群上的运行时间虽然这几年也出现了一些云计算仿真工具,但是却缺乏Hadoop的仿真工具,在少有的几款Hadoop仿真工具中,由于较高的抽象以及缺乏配置的灵活性,也使得它们缺乏精确度和适应性本文首先介绍了云计算相关背景,并深入学习了Hadoop架构,特别是对Hadoop的数据流和工作流进行了深入研究,然后设计并实现了一个Hadoop的仿真系统,该系统抽象了Hadoop必要的参数和组件,通过提取作业的基本信息和集群配置情况,包括Map阶段和Reduce阶段算法消耗的CPU指令和程序输入数据的大小,以及CPU的运行速度和硬盘IO平均速度,就可以算出程序在Map阶段和Reduce阶段执行算法的时间开销,然后模拟Hadoop集群的工作流程(包括sort spill merge shuffle等操作)对元数据和作业信息进行处理,最后评估作业的运行时间等基本性能,经过最后的测试,也验证了仿真系统具有较高的可靠性和准确度,另外仿真系统里集群的各种参数可以由用户自己配置,使得用户可以在各种不同配置的集群下评估自己程序的运行时间,从而找出符合自己程序的最优配置,可以大大提高开发的效率,并有效的节省能源和开发成本