我的每日spark应用程序处理所有datalake步骤,从处理原始层(重复数据消除和etl功能)、创建dw和数据集市开始。。。启动sparksession时,我无法确定spark.sql.shuffle.partitions值的更好配置是什么。我的群集配置:
7个活动节点
总共738.50 gb内存
spark版本2.1.0
我的问题是:如何选择spark.sql.shuffle.partitions的更好值以在spark工作中获得性能。谢谢您
我的每日spark应用程序处理所有datalake步骤,从处理原始层(重复数据消除和etl功能)、创建dw和数据集市开始。。。启动sparksession时,我无法确定spark.sql.shuffle.partitions值的更好配置是什么。我的群集配置:
7个活动节点
总共738.50 gb内存
spark版本2.1.0
我的问题是:如何选择spark.sql.shuffle.partitions的更好值以在spark工作中获得性能。谢谢您
1条答案
按热度按时间cnjp1d6j1#
没有标准答案。但一般来说,首先从高水平的并行性开始(即大nb)。分区数)。
建议每个核心执行2到4个任务。
spark文档:
一般来说,我们建议集群中每个cpu核执行2-3个任务。
所以在你的例子中,7个节点,你需要知道核心的数量,因为每个节点可以有多个执行器,每个执行器可以有多个核心。
关于内存,这取决于你的数据集有多大,你在做什么样的操作,数据是否有偏差,等等。
还有。。为什么不试试最新的spark,它已经给你带来了更多的优化呢?:)
相关答案在这里。