鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

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. 在数据导入阶段进行调优。
    1. 确认集群资源情况,为后续参数设置提供依据。
      1. 查看集群的节点数量和每个节点的CPU核。
      2. 计算集群总核数 = 节点数 × 每节点CPU核。

        示例:若集群有10个节点,每个节点32核,则总核数为320,建议初始parallelism值为640~960(2~3倍)。

    2. “conf/hibench.conf”文件中的parallelism参数设置为如下配置值。
      hibench.default.map.parallelism=640
      hibench.default.shuffle.parallelism=640

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

    3. 执行数据导入操作。验证参数设置后的实际效果,观察数据分片是否符合预期。
      1. 执行HiBench数据导入命令(如terasortwordcount)。
      2. 运行完成后,访问HDFS NameNode界面的Utils > Filesystem Explorer
      3. 检查Hibench对应数据目录下的文件数量,应该与parallelism设置值一致。
      4. 观察文件大小:Partition越多,单文件越小,有利于任务并行处理。
  2. 选择优势场景。

    HiBench测试中,WordCount、Terasort、Bayesian、K-means等计算密集型场景更适合鲲鹏集群。相较SQL类场景,这些场景在数据IO量相近的前提下,CPU运算的S tage更复杂,更能体现多核并行优势。

  3. 为发挥硬件性能,建议根据实际情况保证硬件环境的配置和搭建合理(RAID控制卡Cache策略、网卡配置、块设备配置等)。
  4. 优化软件配置。
    1. 基础配置:客户端与Web端应保持一致的基础配置标准。
    2. Executor参数:根据集群总核数,通过理论公式推算出合理Executor数量和配置,确保资源充分利用。
    3. 亲和性配置:在鲲鹏平台进行CPU亲和性调优,提升任务调度效率和执行性能。
  5. 优化数据分片策略,目标是减小文件粒度,提升并行度,避免单个Task处理数据过大导致瓶颈。
    1. 通用场景:将数据分片数设为集群总核数的2~3倍。
    2. Terasort等中间数据较多的场景:建议使用3~5倍核数的分片数,减少单Task处理数据量,提升执行效率。