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进行加速。
- 下载毕昇JDK地址
- 更换毕昇JDK。
- 停止集群。
- 将BiSheng JDK解压并移动到“/usr/local/”下。
1 2
tar –zxvf bisheng-jdk-8u262-linux-aarch64.tar.gz mv bisheng-jdk1.8.0_262 /usr/local/
- 将原来已有的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/
- 重启集群。
- 参数优化。
- 打开Spark配置文件。
1
vi /opt/HiBench-HiBench-7.0/conf/spark.conf
- 按“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。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开Spark配置文件。
父主题: 专用场景优化项--HiBench场景