● 摘要
近年来,云计算平台的应用与日俱增,对平台性能的要求日益增高。目前,数据中心运行着多种处理大数据的分布式数据处理平台,其中Hadoop已成为主流平台;对其在异构环境下,性能的研究与优化以及对平台的二次开发成为了当前云计算研究的热点内容,也是当前众多数据中心关心的内容及未来的发展方向。
目前,在异构环境下,拖尾任务(掉队任务和倾斜任务)严重影响了Hadoop平台的性能,性能低下的节点处理的任务较慢,形成了大量的拖尾任务导致作业执行时间被延长。现有的解决方法是采用推测执行或克隆拖尾任务来克服拖尾任务和大数据处理平台性能下降的问题,以达到改善集群性能的目的。然而这些方法并没有减少拖尾任务的发生,且异构环境下Hadoop平台性能下降的问题没有得到根本的解决。解决该问题的主要难点在于,如何平衡节点之间因异构性所导致的差异及如何找到一种能够使系统运行在平衡态下的方法。本文基于分析应用特征与系统参数之间关系的结果,提出了一种供选择的方法来减少掉队任务、避免系统性能下降的问题。本文的方法是根据当前任务执行速率和资源的使用率,动态地调整节点上任务槽的数量来匹配节点的处理能力,使得集群中的节点处于资源效率较高、性能较好的状态。
与现有技术相比,本文方法能够通过保持资源供应与需求的平衡来减少任务发生“抖动”次数。本文方法已经在Hadoop-0.21版本中成功实现,通过实验测试,实验结果显示平台整体性能提高了20-30%,任务发生“抖动”的次数减少了35-88%。
关键词:Hadoop、MapReduce、任务分配、异构集群、调整任务槽、感知资源