针对MapReduce在异构环境下各节点性能不均衡,导致整体计算效率低下的问题进行了研究,从节点与任务两方面入手,提出了一种将节点性能量化并排序与将任务按相似度划分相结合的算法。该方法根据历史日志以及实时回传的日志信息将节点按照性能高低排序;根据任务执行完成的信息,将其与新任务进行比对得到相似度,从而推测出新任务的执行时间,执行时间长的认为是复杂的任务;最后进行动态调度,使高性能节点处理更复杂的任务。在随机生成的数据集上的实验结果表明,所提出的动态调度算法与默认调度算法相比,数据集为20GB大小时执行速度提高27.4%,数据集为100GB大小时执行速度提高了74.1%。