论文部分内容阅读
随着个人计算机和互联网革命,云计算被看做第三次IT浪潮,这将改变互联网的技术基础,甚至会颠覆整个行业格局。它会在人们的生活,生产方式和商业模式上带来根本性的变化。作为开放的云计算平台Hadoop的重要组件,MapReduce是用于处理和生成大量数据集的一种分布式和并行计算模型。MapReduce从实现细节中抽象出业务逻辑,并提供功能强大的接口供程序员使用。它可以屏蔽底层的具体实现过程,有效地降低了分布式和并行计算难度,且具备高可靠性,高扩展性,高效率,高容错性的特点。然而,由于MapReduce机制本身的不完美和不成熟,其有必要进一步提高效率。根据对MapReduce的原理和性能指标进行分析,在异构环境中,资源调度存在不合理的问题,数据传输机制有待改进,系统参数可以进一步优化。为了提高异构环境下MapReduce处理大数据集的效率,本文提出了三方面的优化策略:自适应的可移动窗口调度算法,变更数据传输协议(从HTTP到UDT)和优化系统配置参数。其中,自适应的可移动窗口调度算法具备以下优点:(1)基于优先级的任务调度,根据优先级分配执行时间和系统资源;(2)考虑到集群的异构性,基于不同节点的性能分配不同的任务;(3)根据每个节点的负载水平,自动调整负载平衡,动态调整在TaskTracker上运行的任务数目;(4)改进了数据本地化调度算法,提出了基于节点等待时间的数据本地化策略;(5)改进了推测执行策略和识别掉队者(straggler),特别是对于慢节点可以区分是Map慢节点还是Reduce慢节点;(6)控制后备队列中的任务数,以防止任务抖动。对于数据传输协议变更,UDT减少了数据传输过程中建立连接的次数,解决了HTTP拥塞控制机制在高带宽长距离环境下的低效率问题。对于系统配置参数的优化,通过对Map任务输出的数据压缩,减少文件传输的数量和降低带宽成本;减少Reduce任务对内存需求,并设置更多的内存空间,可用于存储更多的Map任务的输出;调整的Map/Reduce任务数量比例,使任务分配更加合理和高效;在Shuffle阶段增加copier线程的数目,提高在shuffle阶段传输大数据的速度。最后,本文根据实际数据通过不同角度的实验方案进行了大量实验测试,对比了优化前与优化后MapReduce的性能差异。算法经过实验的验证,证明了在重建和优化之后,MapReduce的性能得到了很大地提高。