论文部分内容阅读
科技的发展和时代的进步把我们带入了大数据时代。大数据时代下,如何把海量的数据转化为巨大的价值是大数据处理需要解决的问题。然而,传统的单机环境难以存储和处理海量的数据,出现了很多分布式存储和计算系统。分布式系统能够管理和协调大量普通机器,对外表现为一台机器。在分布式系统内一台机器上存储和处理一部分数据,所有的机器协调统一,从而完成整个存储和计算的任务。由于内存访问速度是纳秒级而磁盘的访问速度是微秒级,所以使用内存加速分布式存储和计算是当前大数据存储和处理的研究热点。Spark就是一种基于Map-Reduce编程模型的Spark分布式内存计算系统。Spark提出一种新的抽象RDD,能够在数据处理并行化的同时提供容错。Spark把Map-Reduce过程中的中间数据存储在内存中、把Spark应用中重要的RDD缓存在内存中,从而提高Spark系统的性能和内存利用率。本文基于分布式内存计算系统Spark,研究了Spark系统的实现原理、运行机制和资源管理,研究并测试了Spark系统的内存管理和使用特点,设计并实现了两种Spark系统的缓存策略——分布式权值缓存策略DWRP和二次执行缓存策略DERP。本文的主要贡献有:(1)研究分析了分布式内存计算系统Spark的实现原理、运行机制和资源管理方式。研究了Spark系统中内存的管理和使用方式。使用BigDataBench大数据标准测试集,通过实验测试和数据分析,重点研究了Spark系统中Shuffle Memory,Storage Memory的管理和使用特点。测试并分析了Spark系统中两种Shuffle方式的特点。(2)基于Spark1.4.0设计并实现了一种Spark系统中的缓存策略——分布式权值缓存策略DWRP。DWRP策略的主要思想是:首先利用RDD的分布式特征,筛选一部分RDD的分区,然后再利用RDD分区的大小,访问频率和缓存时间等特征计算筛选出来的RDD分区的权值,最后淘汰其中权值最小的RDD分区。DWRP策略适合运行多种Spark应用的Spark集群。(3)基于Spark1.4.0设计并实现了一种Spark系统中的缓存策略——二次执行缓存策略DERP。DERP策略的主要思路是:取原始数据的一小部分数据作为输入数据,第一次执行时得到该Spark应用的DAG图和应用特征。第二次执行为正式执行,使用所有的原始数据执行该Spark应用。在第二次正式执行时利用该DAG图和该应用的的信息主动淘汰某些无用的RDD分区,存储更有价值的RDD分区。DERP策略适合多次运行单一Spark应用的Spark集群。通过以上对分布式内存计算系统Spark的研究,我们的工作为进一步提高Spark系统的性能提供了有力的技术支撑,为进一步优化其他分布式系统的内存利用率提供了思路。