Spark參數說明及調優

conf/spark-env.sh參數說明:

  • SPAKR_WORKER_MEMORY : 指單個Worker節點在本機上可以使用的內存上限, 如512m, 2g等. 默認大小爲本機所有內存減去1GB
  • SPARK_EXECUTOR_MEMORY : 指單個進程(應用程序)在每個機器上可以使用的內存 , 默認是1g
  • SPARK_WORKER_CORES : 指單個Worker節點在本機上可以使用的CPU core上限, 默認是所有core

 

partition的使用

Spark中有partition概念, 每個partition都會對應一個task, task越多在處理大數據量時越有效率, 但是task不是越多越好, 當數據量不大時task越多反而效率越低.

如何設置task的個數呢, 有三種方式:

  • 方式一: 配置spark-default.conf文件

         spark.default.parallelism  100

         spark.sql.shuffle.partitions  50 (針對 spark sql的task數量)

  • 方式二:  編寫代碼時指定task的個數

         rdd.repartition(100).map(xxx)

  • 方式三:  spark-submit提交運行時進行配置

         spark-submit  --master xxx  --conf  spark.default.parallelism=100  --class xxx  xxx.jar

優先級: 方式三 > 方式二 > 方式一

範圍:  worker > executor > task = partition

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章