摘要

Shuffle是大数据处理过程中一个极为重要的阶段.不同类型的Task(或者Stage)之间通过Shuffle进行数据交换.在Shuffle过程中数据需要进行持久化,以达到避免重计算和容错的目的.因此Shuffle的性能是决定大数据处理性能的关键因素之一.由于传统Shuffle阶段的数据通过磁盘文件系统进行持久化,所以影响Shuffle性能的一个重要因素是I/O开销,尤其是对基于内存计算的大数据处理平台,例如Spark,Shuffle阶段的磁盘I/O可能拖延数据处理的时间.而非易失内存(NVM)具有读写速度快、非易失性以及高密度性等诸多优点,它们为改变大数据处理过程中对磁盘I/O的依赖、克服目前基于内存计算的大数据处理中的I/O性能瓶颈提供了新机会.提出一种基于NVM的Shuffle优化策略——NV-Shuffle.NV-Shuffle摒弃了传统Shuffle阶段采用文件系统的存储方式,而使用类似于Memory访问的方式进行Shuffle数据的存储与管理,避免了文件系统的开销,并充分发挥NVM的优势,从而减少Shuffle阶段的耗时.在Spark平台上实现了NV-Shuffle,实验结果显示,对于Shuffleheavy类型的负载,NV-Shuffle可节省大约10%40%的执行时间.