---
title: 应用场景
description: "OmniShuffle Shuffle加速组件特性支持Shuffle密集型作业场景和大数据场景，支持Spark 3.1.1、Spark 3.3.1引擎。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0305.html
sourcePath: /source/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0305.html
indexId: e24b5da0ca15c35713ef007ad18d968d0d907736507ceb337eb9ba649d15981078
---
# 应用场景

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。大数据OmniShuffle Shuffle加速组件通过实现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任务的执行性能。


Shuffle应用模式选择RSS模式或ESS模式可根据具体业务场景选择：- ESS模式：业务数据规模不大或者机器的配置较高，适合Shuffle密集型作业场景。
- RSS模式：业务规模较大且计算节点资源有限，适合可靠性要求高的场景。


Shuffle应用模式在业务规模较大且计算节点资源有限，可靠性要求高的场景下使用RSS模式。

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