应用场景
OmniShuffle Shuffle加速特性支持Shuffle密集型作业场景和大数据场景等,支持Spark 3.1.1、Spark 3.3.1引擎。
Shuffle密集型作业场景
使用OmniOperator算子加速后Shuffle仍然写在磁盘上,进行Shuffle密集型作业时,在Map过程完成后,仍然需要进行大量数据的跨节点交换,依旧存在瓶颈,叠加OmniShuffle Shuffle加速后,可以达到叠加效果,以此获得更多的性能收益。
大数据场景
使用大数据引擎Spark进行Shuffle密集型作业,在Map过程完成后,仍需进行大量数据的跨节点交换。统计数据显示,在很多分析场景中,Spark的Shuffle过程占据了最多的时间和资源开销,例如有些过程可以占用Spark业务端到端时间开销的50% ~ 80%。
大数据OmniShuffle Shuffle加速作为Spark的性能加速组件,通过Spark提供的插件机制,实现Shuffle Manager和Broadcast Manager插件接口,无侵入式替换开源Spark的Shuffle和Broadcast。
- 通过实现Shuffle Manager插件接口使能In-memory Shuffle,即在内存池中通过内存语义完成Shuffle过程,减少Shuffle数据落盘,降低数据落盘读取、序列化和反序列化、压缩和解压缩带来的时间开销和算力开销。
- 通过实现Broadcast Manager插件接口使能基于内存池共享的方式进行变量广播,提高广播变量在各个Executor之间的共享传输效率。
同时,大数据OmniShuffle Shuffle加速支持RDMA(Remote Direct Memory Access)和TCP两种网络模式。相比TCP,RDMA可提高传输效率,降低对算力的要求,实现节点间数据的高效交换。
数据分析业务场景
传统的数据分析存在很多问题:
- 数据量呈井喷式增长,且数据呈现出多源和异构的特征,导致数据分析成本越来越高。
- 传统的shuffle架构对本地存储有很强的依赖,无法做到存算分离,reduce节点存在很多碎片化的磁盘读写,严重影响效率。
- 传统shuffle在可靠性上也存在缺陷,在大规模场景下,磁盘故障时的shuffle数据丢失导致stage重算,链接数量过多会导致网络数据拉取失败。
RSS模式创新地采用了存算分离架构设计,确保计算节点和存储节点各尽所能、分工协作。通过对SparkShuffle写流程的重写,BoostRSS会将MAP阶段所产生的数据统一保存至RSS节点内,从而把原有的小文件和小I/O操作,聚合成高效的大文件与连续大I/O操作,显著增强磁盘读写的效率,减轻计算节点I/O处理压力,进一步释放其计算能力,提升整体MapReduce任务的执行性能。
- ESS模式:业务数据规模不大或者机器的配置较高。
- RSS模式:业务规模较大且计算节点资源有限。

- 建议使用RDMA网络,且网络带宽越高效能越好。
- Spark本身具有一套插件机制,开发者可以通过实现Spark的插件接口替换Spark原有功能。