论文部分内容阅读
如今,伴随着数据量地快速增长,海量数据成为困扰企业发展的因素之一。如何有效处理数据,减小数据访问的并发压力,成为大数据解决方案不断发展的动力。MapReduce是分布式计算中具有重要意义的解决方案之一。它通过用户编写Map和Reduce函数来处理大规模数据集。YARN是Hadoop2.0以后设计出的新资源管理框架,MapReduce On YARN即MapReduce的第二版,它摒弃了第一代中的slot、TaskTracker和JobTracker等旧概念,保留原有计算流程,通过与YARN中的ResourceManager、NodeManager和Container等协调工作完成作业的执行。本文首先介绍Hadoop平台的相关知识,其中包括HDFS、YARN的体系架构、MapReduce工作原理和Hadoop作业调度算法。基于以上研究分析,指出MapReduce目前存在的不足。在作业执行过程中,MapReduce会读取处理大量数据,但这些数据在任务的读取、处理、写入结果的流程中与HDFS频繁交互,造成很多不必要的IO开销。待处理的数据会跨节点传输,网络状况对数据传输会造成一定的影响,这些将影响到作业的运行效率。有效地提高异构环境下的任务执行本地化效率是MapReduce中需要优化的关键点之一。本文针对于上述问题,将基于内存的缓存技术与MapReduce结合,利用目前业界流行的缓存思想和技术,着重于对缓存架构设计、缓存数据副本放置、缓存替换和任务调度等关键问题开展研究,旨在提高MapReduce的处理速度。主要贡献如下:1.针对于异构环境下的分布式存储特征以及MapReduce的分布式处理,设计适用于MapReduce的缓存系统,剖析系统内部的模块。2.针对于数据在网络传输中的耗费,根据节点之间的性能差异,参考HDFS的数据块副本放置策略,改进该策略中的不足,将数据缓存合理地放入不同节点上,为有效地实施任务本地化执行、数据容错和负载均衡提供保障。3.针对于提升任务执行调度的高效性,提出基于缓存感知的任务调度策略,按照任务优先级的不同安排任务的执行顺序。4.针对于MapReduce数据本地化处理,考虑文件分片的状态、访问频度等因素,提出新的缓存替换策略。