Spark参数调优

参考

https://www.zybuluo.com/xiaop1987/note/102894

在一个Spark应用中,每个Sparkexecutor拥有固定个数的core以及固定大小的堆大小。core的个数可以在执行spark-submit或者pyspark或者spark-shell时,通过参数--executor-cores指定,或者在spark-defaults.conf配置文件或者SparkConf对象中设置spark.executor.cores参数。同样地,堆的大小可以通过--executor-memory参数或者spark.executor.memory配置项。core配置项控制一个executor中task的并发数。--executor-cores5意味着每个executor中最多同时可以有5个task运行。memory参数影响Spark可以缓存的数据的大小,也就是在groupaggregate以及join操作时shuffle的数据结构的最大值。

--num-executors命令行参数或者spark.executor.instances配置项控制需要的executor个数。从CDH5.4/Spark1.3开始,你可以避免使用这个参数,只要你通过设置spark.dynamicAllocation.enabled参数打开动态分配。动态分配可以使的Spark的应用在有后续积压的在等待的task时请求executor,并且在空闲时释放这些executor。

相关推荐