论文部分内容阅读
分析海量数据中的潜在价值,可以带来巨大的收益。Spark作为数据分析的重要平台已经被广泛地应用在大数据处理中。因其易用性,Spark SQL成为用户进行数据分析经常使用的接口。在数据分析应用中,存在着重复计算,而Spark SQL缺乏数据重用机制,导致了资源的浪费。 本文以减少重复计算为目标,提出了基于收益模型的Spark SQL数据重用机制,主要贡献如下: (1)基于大数据场景,提出并实现了一种新型的收益模型用于识别重用价值大的数据以及数据管理——针对混合介质的收益模型。已有数据重用技术中都使用单一介质存储缓存数据,存在着一定的局限性,本文采用混合介质存储,充分发挥各存储介质的优势,并提出一种针对混合介质的收益模型,自动选择重用价值大的数据进行缓存以及在空间不足时优先保留重用收益大的数据。 (2)针对Spark这类大规模分布式数据处理平台,提出并实现了一种细粒度的数据重用方式——Partition粒度重用。数据分析系统通常将SQL查询语句翻译成执行计划树,树中的每个节点是一个算子,表示对数据进行的处理。在已有的数据重用技术中,缓存与重用的基本单位是算子。分布式场景下,算子的数据被划分为多个Partition,每个Partition由一台机器处理,这使得细粒度缓存与重用成为可能,从而提高缓存空间的利用率及缓存效率。 (3)设计并实现了具有数据重用功能的Spark SQL系统——Criss系统。能够根据历史负载识别出重复计算,并基于收益模型选择重用收益大的数据自动缓存,供后续计算重用,提升系统的查询处理性能。 测试结果表明,在引入数据重用机制之后,Criss系统相比于原始Spark SQL系统有40%以上的性能提升,在数据重用技术的关键问题上,通过与已有方案对比,也体现了本文所采用方案的优势。