论文部分内容阅读
MapReduce是处理大规模数据的有效工具,Hadoop是MapReduce的一个开源实现,由于其良好的容错性和可扩展性得到的广泛研究和使用。然而,为了有效的使用Hadoop集群资源,即使在Hadoop中运行一个简单的程序也需要用户或者管理员调整大量的Hadoop参数。在Hadoop中有190个的参数,这些参数控制着MapReduce作业在Hadoop中的运行行为。用户经常会因为不知道如何设置这些参数而遇到性能问题。基于性能预估的Hadoop参数自动调优系统HCOpt,针对Hadoop的高可配置性,通过动态字节码注入技术追踪MapReduce作业的运行信息,并对这些信息进行统计分析,提取Hadoop应用程序的运行特性;再通过轻量级MapReduce模拟器以及代价模型,结合Hadoop应用程序的运行特征预估该程序在指定参数配置方案下的运行性能;通过一种基于遗传算法的参数调优算法,结合性能预估,在大量的参数配置方案中搜索近似最优的参数配置方案,实现Hadoop参数自动调优功能。HCOpt通过动态字节码注入技术来追踪MapReduce作业运行信息,将系统对应用程序的运行影响以及和Hadoop之间的耦合度降到最低,可以很好的适应各种版本的Hadoop,同时通过对Hadoop参数的调优,在相同的硬件条件下充分利用系统资源提高了Hadoop应用程序的运行性能。通过典型的Hadoop应用程序测试HCOpt的有效性,结果分析表明对I/O密集型和计算密集型应用均有较好的性能提升效果,和系统默认的参数配置方案相比运行时间平均缩短了50%以上,和基于经验原则优化的参数配置方案相比运行时间缩短了29%~54%。