並行度控制任務的數量,影響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”的值,優先級最低