---
title: OmniShuffle Shuffle加速特性
description: "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可提高传输效率，降低对算力的要求，实现节点间数据的高效交换。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/230RC5/bds/kunpengbds_omniruntime_20_0125.html
sourcePath: /source/zh/kunpengboostkithistory/230RC5/bds/kunpengbds_omniruntime_20_0125.html
indexId: dc9ddabba99e9cfcf43dafd167ab9217cd5eacba804ac13503fb429b0741135b80
---
# OmniShuffle Shuffle加速特性

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可提高传输效率，降低对算力的要求，实现节点间数据的高效交换。

同时，OmniShuffle Shuffle加速通过基于历史记录的实时调整方式实现Spark SQL作业的并行度自动调整，消除用户针对并行度的调优工作量，同时减少90%以上Shuffle Reduce侧Spill，从而实现缩短作业运行时间，提高大数据集群作业吞吐量。

#### 整体方案

OmniShuffle Shuffle加速通过实现Shuffle Manager插件接口使能In-memory Shuffle，OmniShuffle Shuffle加速整体方案架构如图1所示，子系统的介绍如表1所示。

图1 OmniShuffle Shuffle加速逻辑架构图


**表1 子系统介绍**

| 子系统 | 子系统介绍 |
| --- | --- |
| 内存池套件 | 提供分布式共享内存基础设施，并提供基础的内存语义。 |


#### 业务流程

OmniShuffle Shuffle加速主要通过实行Spark Shuffle Manager接口，实现In-memory Shuffle，OmniShuffle业务具体流程如图2所示。

图2 业务流程图

OmniShuffle Shuffle加速与Spark对接后，用户通过访问Spark的CLI可以查看集群的运行状态。
