---
title: HiBench调优
description: "合理配置HiBench测试参数和集群资源，充分发挥鲲鹏多核架构优势，提升HiBench测试场景的执行效率和整体性能表现，提高任务的并行度和执行效率。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/Spark/kunpengspark2xhdp_05_0022.html
sourcePath: /source/zh/kunpengbds/ecosystemEnable/Spark/kunpengspark2xhdp_05_0022.html
indexId: 4ec548acf6f0f531b721c38423f3a8f0ef9b046827b64e791a83f782b6da64f274
---
# HiBench调优

#### 目的

合理配置HiBench测试参数和集群资源，充分发挥鲲鹏多核架构优势，提升HiBench测试场景的执行效率和整体性能表现，提高任务的并行度和执行效率。


#### 方法

在HiBench测试中，调优从数据导入阶段就开始影响性能。关键参数包括“conf/hibench.conf”文件中的“hibench.default.map.parallelism”和“hibench.default.shuffle.parallelism”。这两个parallelism参数决定了数据分片（Partition）的数量，进而影响Mapper和Reducer阶段的并行度。分片数越多，数据文件数量越多，单文件体积越小，有利于并行处理。Spark官方建议在Yarn管理的集群中，将parallelism设为执行节点总核数的2～3倍，每个CPU核运行2～3个任务。

1. 在数据导入阶段进行调优。

  a. 确认集群资源情况，为后续参数设置提供依据。

    1. 查看集群的节点数量和每个节点的CPU核。
    2. 计算集群总核数 = 节点数 × 每节点CPU核数。
      示例：若集群有10个节点，每个节点32核，则总核数为320，建议初始parallelism值为640～960（2～3倍）。

  b. 将“conf/hibench.conf”文件中的parallelism参数设置为如下配置值。

```
hibench.default.map.parallelism=640
hibench.default.shuffle.parallelism=640
```


    在Terasort等中间数据量大的场景中，可适当提高parallelism至3～5倍总核数，减小单Task输入量，提升处理效率。

  c. 执行数据导入操作。验证参数设置后的实际效果，观察数据分片是否符合预期。

    1. 执行HiBench数据导入命令（如terasort或wordcount）。
    2. 运行完成后，访问HDFS NameNode界面的“Utils > Filesystem Explorer”。
    3. 检查HiBench对应数据目录下的文件数量，应与parallelism设置值一致。
    4. 观察文件大小：Partition越多，单文件越小，有利于任务并行处理。
2. 选择优势场景。
  HiBench测试中，WordCount、Terasort、Bayesian、K-means等计算密集型场景更适合鲲鹏集群。相较SQL类场景，这些场景在数据IO量相近的前提下，CPU运算的Stage更复杂，更能体现多核并行优势。

3. 为发挥硬件性能，建议根据实际情况保证硬件环境的配置和搭建合理（RAID控制卡Cache策略、网卡配置、块设备配置等）。
4. 优化软件配置。

  a. 基础配置：客户端与Web端应保持一致的基础配置标准。
  b. Executor参数：根据集群总核数，通过理论公式推算出合理Executor数量和配置，确保资源充分利用。
  c. 亲和性配置：在鲲鹏平台进行CPU亲和性调优，提升任务调度效率和执行性能。
5. 优化数据分片策略，目标是减小文件粒度，提升并行度，避免单个Task处理数据过大导致瓶颈。

  a. 通用场景：将数据分片数设为集群总核数的2～3倍。
  b. Terasort等中间数据较多的场景：建议使用3～5倍核数的分片数，减少单Task处理数据量，提升执行效率。
