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内存小的话,会频繁导致垃圾回收,影响效率。

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