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

K-means–纯计算密集型

目的

K-means是CPU密集型场景,可以对IO参数和Spark执行参数进行调整。

方法

  • 主要是调整Spark Executor参数适配到一个较优值,该场景可以使用以下分片设置:
    1
    2
    spark.sql.shuffle.partitions 1000
    spark.default.parallelism 2500
    
  • 使用以下内核参数:
    1
    echo 4096 > /sys/block/sd$i/queue/read_ahead_kb
    
  • HiBench在配置文件中指定的运行核数、内存大小可以根据实际环境来做调整,来达到最优性能。比如对于鲲鹏920 5220处理器,K-means场景建议以下Executor参数:
    1
    2
    3
    4
    5
    yarn.executor.num 42
    yarn.executor.cores 6
    spark.executor.memory 15G
    spark.driver.memory 36G
    spark.locality.wait 10s
    
  • 调整JDK参数,以下配置添加到spark-default.conf文件中:
    1
    2
    spark.executor.extraJavaOptions -XX:+UseNUMA -XX:BoxTypeCachedMax=100000 -XX:ParScavengePerStrideChunk=8192
    spark.yarn.am.extraJavaOptions -XX:+UseNUMA -XX:BoxTypeCachedMax=100000 -XX:ParScavengePerStrideChunk=8192
    

毕昇JDK对K-means有特定的优化,可以使用毕昇JDK进行加速。

  1. 下载毕昇JDK地址
  2. 更换毕昇JDK。
    1. 停止集群。
    2. 将BiSheng JDK解压并移动到“/usr/local/”下。
      1
      2
      tar –zxvf  bisheng-jdk-8u262-linux-aarch64.tar.gz
      mv bisheng-jdk1.8.0_262  /usr/local/
      
    3. 将原来已有的JDK文件重命名并将BiSheng JDK重命名为原来的JDK的文件名并更改权限。
      1
      2
      3
      mv jdk8u222-b10/  jdk8u222-b10-openjdk/
      mv bisheng-jdk1.8.0_262/  jdk8u222-b10/
      chmod -R 755 jdk8u222-b10/
      
    4. 重启集群。
  3. 参数优化。
    1. 打开Spark配置文件。
      1
      vi /opt/HiBench-HiBench-7.0/conf/spark.conf
      
    2. “i”进入编辑模式,修改spark.executor.extraJavaOptions的值。
      1
      2
      3
      spark.executor.extraJavaOptions -XX:+UnlockExperimentalVMOptions
      -XX:+EnableIntrinsicExternal -XX:+UseF2jBLASIntrinsics -Xms43g
      -XX:ParallelGCThreads=8
      

      -xms(n)g取决于“/opt/HiBench-HiBench-7.0/conf/spark.conf”中spark.executor.memory值的大小n的值建议设置为spark.executor.memory的值减1。

    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。