论文部分内容阅读
近年来,随着大数据时代的到来,与之对应的大数据处理技术也不断发展,产生了众多优秀的大数据处理平台,包括Hadoop、Spark和Storm等,其中最惹人注目的当属Spark。随着Spark在国内外的广泛应用,它存在的一些问题也随之暴露。其中一个比较突出的问题是它的性能问题。如何对Spark大数据平台进行性能优化,从而提高集群整体效率,是大数据平台研究的一个重要课题之一。本文以Spark大数据平台的Shuffle过程为研究对象,通过分析Spark大数据平台Shuffle过程的底层执行机制,选择对Spark大数据平台Shuffle过程性能影响最大的两个方面进行研究:压缩算法决策方法和内存调度机制优化,最后设计并实现了一个Spark大数据平台管理和监控系统。首先,本文研究了Spark大数据平台Shuffle过程的实现机制,针对其压缩配置基本依靠用户经验进行配置的问题,提出了基于开销的压缩算法决策模型。实验表明该决策模型可以在小负载测试的基础上预测出实际负载下最优的压缩配置,预测结果的准确率为60%,采用预测的压缩配置相对于默认配置运行时间最高可提高30%,平均可以提高10%;其次,研究了Spark2.x版本、Spark1.6.x版本及以前版本Spark内存机制的不同,指出了在新版本中进行内存调度优化的重要作用。同时研究了Spark大数据平台两种不同内存调度算法FIFO和FAIR,通过实际例子对比了两种内存调度算法在处理均匀分布数据和不均匀分布数据时的性能,分析了两种调度算法的优点和缺点。考虑到FAIR内存调度算法只考虑了Task总数分配的平均性,而没有考虑到不同Task所需内存量的不同,提出了改进的内存调度算法。实验表明该调度算法在处理数据分布不均匀的数据时具有更低的溢出次数和更短的运行时间。最后,针对Spark平台配置和调优对用户基础知识要求较高的问题,设计并实现了一个Spark大数据平台管理和监控系统,该系统的功能是提供一个通用的管理框架,从而使用户摆脱系统低层的操作,以一系列基于可视化界面的管理、监控功能来提供Spark服务。系统最主要的两个功能就是管理和监控,管理功能通过一系列的可视化配置,使用户可以方便的管理集群。总之,本文对Spark大数据平台Shuffle过程性能优化方法进行了有益的探索,并在Spark平台Shuffle过程压缩算法决策和Shuffle内存调度优化两方面取得了一定的成果。这些成果对于Spark大数据平台Shuffle过程性能优化具有重要参考价值,对于提高Spark集群资源利用率具有重要意义。