叠加OmniOperator 算子加速
通过OmniOperator 算子加速特性提升算子执行效率,同时使用OmniShuffle Shuffle加速组件特性优化数据交互过程,实现端到端提升引擎查询性能。
操作步骤
使用OmniShuffle Shuffle加速组件叠加OmniOperator算子加速特性执行Spark引擎业务,需通过启动Spark-SQL命令行窗口来执行。
- 获取OmniShuffle Shuffle加速组件叠加OmniOperator算子加速软件包,以Spark3.3版本为例,软件包名称为BoostKit-omnishuffle-spark-3.3.1-1.6.0-aarch64.zip。将软件包上传至“/home/ockadmin”并解压获取ock-omniop-shuffle-manager-24.0.0-for-spark-3.3.jar文件,将解压后的jar文件移动至“${OCK_HOME}/jars”目录下。
- 在“ock_spark.conf”中添加开启OmniOperator算子加速的配置以及shuffle manager配置,示例配置如下:
spark.shuffle.manager org.apache.spark.shuffle.ock.OckColumnarShuffleManager spark.shuffle.ock.mode rss # RSS spark.sql.orc.columnarReaderBatchSize 10000 spark.memory.offHeap.enabled true spark.memory.offHeap.size 28g spark.driverEnv.LD_PRELOAD /opt/operator1.5.0/lib/libjemalloc.so.2 spark.executorEnv.LD_PRELOAD /opt/operator1.5.0/lib/libjemalloc.so.2 spark.executorEnv.OMNI_CONNECTED_ENGINE Spark spark.executorEnv.OMNI_HOME /opt/operator1.5.0 spark.driverEnv.OMNI_HOME /opt/operator1.5.0 spark.executorEnv.LD_LIBRARY_PATH /opt/operator1.5.0/lib/:/usr/local/lib/HMPP:$LD_LIBRARY_PATH spark.driverEnv.LD_LIBRARY_PATH /opt/operator1.5.0/lib/:/usr/local/lib/HMPP:$LD_LIBRARY_PATH spark.sql.extensions com.huawei.boostkit.spark.ColumnarPlugin spark.sql.join.columnar.preferShuffledHashJoin true spark.sql.orc.impl native
- 将SparkExtension插件启动命令添加至OmniOperator算子加速依赖的jar路径,示例命令如下:
spark-sql --deploy-mode client --driver-cores 8 \ --driver-memory 40G \ --num-executors 24 \ --executor-cores 12 \ --executor-memory 25g \ --master yarn \ --conf spark.sql.codegen.wholeStage=false \ --jars /home/ockadmin/opt/ock/jars/* \ --jars /opt/operator1.5.0/jars/* \ --properties-file /home/ock_spark.conf \ --database tpcds_bin_partitioned_orc_3
- 查看叠加特性是否成功。
- 执行TPC-DS SQL任务,观察到Spark History UI上的执行流程图中shuffle算子被替换为OmniColumnarShuffleExchange,则表示使用OmniOperator 算子加速特性成功。
图1 执行流程图
- 观察driver日志中出现Shuffle initialize success则表示使用OmniShuffle Shuffle加速组件成功。
图2 driver日志信息
- 执行TPC-DS SQL任务,观察到Spark History UI上的执行流程图中shuffle算子被替换为OmniColumnarShuffleExchange,则表示使用OmniOperator 算子加速特性成功。

- “/opt/operator1.5.0/” 为OmniOperator 算子加速的安装目录,可根据实际情况修改。
- 步骤2中添加的配置项具体作用请参考《Kunpeng BoostKit 24.0.RC5 大数据OmniRuntime特性指南》。
- spark.shuffle.ock.mode 为shuffle使用的模式,跟OmniShuffle Shuffle加速组件部署方式保持一致。
父主题: 特性使用