spark怎麼分配資源

spark分配資源概述

爲啥要研究spark資源分配

spark中最基本和最有效率的優化方式就是給spark程序分配更多的資源,所以這次講如何更合適的給你的spark程序分配資源

spark分配資源主要調整哪一些資源

/home/zhou/spark/bin/spark-submit \
--class  com.zhou12314.TestDemo\
--num-executors    8            \*配置executor的數量 *\
--driver-memory    200m        \*配置driver的內存*\
--executor-memory  600m        \*配置每個executor的內存大小 *\
--executor-cores   8              \*配置其中每個executor的cpu core數量 *\
/home/zhou/TestDemo.jar  \

如何根據配置進行調節

根據公司集羣能夠分配給你的配置進行調節,例如在standalone模式下,公司spark集羣規模偉每臺16G內存,一共20臺機器,每太機器有4個cpu core。這裏我們要申請最大的資源可以 --num-executors設置爲20,executor-memory設置爲16G,--executor-cores 設置爲8。

--driver-memory 如果需要將數據拉到一臺機器上進行處理,需要設置這一個,具體根據自己的數據量大小來

爲啥調節資源性能會提升?

增加executor:

exeutor的數量,意味着你能夠並行執行task的數量, 並行task數量 = executor * cpu core

增加cpu ore

道理同上, 畢竟 並行task數量 = executor * cpu core

增加每個executor的內存量:

1.如果rdd需要緩存的話,內存大可以緩存更多的數據
2.如果執行shuffle操作的話,需要從map端拉取數據到reduce,可能還需要聚合,如果內存量不夠的話,會把數據寫入磁盤,這樣會比較慢。
3.exeutor內存小的話,會頻繁導致垃圾回收,影響效率。

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