Spark Core内存调优
操作场景
并行度控制任务的数量,影响shuffle操作后数据被切分成的块数。调整并行度让任务的数量和每个任务处理的数据与机器的处理能力达到合适。
查看CPU使用情况和内存占用情况,当任务和数据不是平均分布在各节点,而是集中在个别节点时,可以增大并行度使任务和数据更均匀的分布在各个节点。增加任务的并行度,充分利用集群机器的计算能力,一般并行度设置为集群CPU总和的2-3倍。
操作步骤
并行度可以通过如下三种方式来设置,用户可以根据实际的内存、CPU、数据以及应用程序逻辑的情况调整并行度参数。
- 在会产生shuffle的操作函数内设置并行度参数,优先级最高。
testRDD.groupByKey(24)
- 在代码中配置“spark.default.parallelism”设置并行度,优先级次之。
val conf = new SparkConf() conf.set("spark.default.parallelism", 24)
- 在“$SPARK_HOME/conf/spark-defaults.conf”文件中配置“spark.default.parallelism”的值,优先级最低。
spark.default.parallelism 24