一、Spark性能调优之资源分配 大体上这两个方面:core memory
(1)、分配哪些资源?
executor、core per executor、memory per executor、driver memory
(2)、在哪里分配这些资源?
在我们在生产环境中,提交spark作业时,用的spark-submit shell脚本,里面调整对应的参数
/usr/local/spark/bin/spark-submit \
--class cn.spark.sparktest.core.WordCountCluster \
--num-executors 3 \ 配置executor的数量
--executor-memory 100m \ 配置每个executor的内存大小
--executor-cores 3 \ 配置每个executor的cpu core数量
--driver-memory 100m \ 配置driver的内存(影响很大)
/usr/local/SparkTest-0.0.1-SNAPSHOT-jar-with-dependencies.jar
(3)、调节到多大,算是最大呢?
第一种,Spark Standalone,公司集群上,搭建了一套Spark集群,你心里应该清楚每台机器还能够给你使用的,大概有多少内存,多少cpu core;那么,设置的时候,就根据这个实际的情况,去调节每个spark作业的资源分配。比如说你的每台机器能够给你使用4G内存,2个cpu core;20台机器;executor,20;平均每个executor:4G内存,2个cpu core。

本文详细介绍了Spark性能调优的三个方面:资源分配、分区与Task个数的关系以及并行度设置。通过合理分配executor、core和memory资源,以及调整Task数量,可以显著提升Spark应用的执行效率。并行度的设置应与资源匹配,以充分利用集群资源,减少Task处理数据量,加快运行速度。

742

被折叠的 条评论
为什么被折叠?



