论文部分内容阅读
随着大数据时代的到来,全球数据存储量呈爆炸式增长,面对如此海量的数据,如何有效地从这些数据中挖掘出有价值的信息显得尤为重要。为了应对大数据的挑战,以Spark为代表的大数据存储与计算系统得到了广泛的应用。计算资源、存储资源、网络资源是大数据处理的三个必备要素,半导体工艺和多核技术的发展使得芯片上单位面积的计算能力越来越强,同时网络速度也在不断增长,而反观存储资源,基于传统存储工艺(磁盘)的存储系统已经无法满足计算机系统对性能和功耗上的需求,逐渐成为发展瓶颈。 新型存储设备(如基于NAND闪存的固态盘SSD以及性能接近内存的NVM)的不断发展与普及,为缓解磁盘性能瓶颈提供了新的机会。由于新型存储器件在成本、容量、性能上的特点以及大数据应用在数据量和性能方面的需求,单纯使用新型存储器件是不可取的,使用异构存储为大数据处理提供高效的存储服务是一种有效方式。当前大数据处理平台对于异构存储的支持较为欠缺,具体表现在任务调度、中间结果存取等方面,无法充分发挥异构存储的优势。Spark是基于内存计算的新一代大数据处理框架,因此本文以Spark作为研究的系统基础,围绕如何高效使用异构存储资源的问题开展了一系列的研究工作,取得的创新成果如下: (1)提出了一种针对异构存储集群平台的Task调度优化策略—H-Scheduler。传统Task调度策略以数据本地性为原则,忽略了不同存储介质对于Task执行效率的影响。针对这一问题,H-Scheduler将数据所对应的存储介质特征添加到Task调度中,综合数据的本地性和其存储介质特征对Task进行分类,扩展了Task类型,并重新定义了不同类型Task的调度优先级,充分发挥了异构存储资源的优势,从而减少作业执行时间; (2)提出了一种针对异构存储集群平台的Shuffle优化方法—H-Shuffle。当前Shuffle阶段在异构存储环境下的数据放置策略仍然采用轮询方式,不区分存储设备类型,ReduceTask使用随机、无序的方式读取Shuffle数据分区,无法发挥异构存储资源的优势。针对这一问题,H-Shuffle将异构存储特征引入到Shuffle阶段,使上层应用能够根据自身数据特征选择不同的存储资源进行存取,而且在读取Shuffle数据时,H-Shuffle将读取划分为多个阶段,每个阶段读取位于相同类型存储资源上的数据分区,从而加速Shuffle数据的读取; (3)提出了一种基于非易失内存的Shuffle优化策略—NV-Shuffle。以PCM(PhaseChange Memory)为代表的非易失内存凭借其性能高、能耗低、容量大等特点为缓解I/O开销提供了新的机会。在以Spark为代表的基于内存计算的大数据处理平台中,基于磁盘的Shuffle数据存取是影响应用性能的重要因素,NV-Shuffle利用新型非易失内存延迟低(接近DRAM)和非易失性的优势,将它们作为持久化内存用于Shuffle数据存取,摒弃了传统的文件系统,而采用持久化的NV-Buffer进行数据的组织与存取,从而最大化发挥NVM的性能优势,加速Shuffle阶段数据的存取。