根据执行器、内核和内存决定spark(在Yarn上运行)中的分区数

dsekswqp  于 2021-05-27  发布在  Spark
关注(0)|答案(2)|浏览(351)

如何根据执行器、内核和内存来确定spark(在Yarn上运行)的分区号。由于我是新的Spark,所以没有太多的实际情况的手
我知道很多事情需要考虑来决定分区,但是任何生产场景的详细解释都会非常有帮助。
提前谢谢

mspsb9vt

mspsb9vt1#

imo使用spark 3.0和aws emr 2.4.x以及自适应查询执行,通常最好让spark来处理。如果你真的想手动调整它的答案往往是复杂的。一个好的选择是拥有2到4倍的可用CPU数量。虽然这对于大多数数据集都很有用,但对于非常大和非常小的数据集来说,这都会产生问题。在这些情况下,将每个分区的容量定为128mb是很有用的。

1l5u6lss

1l5u6lss2#

并行集合的一个重要参数是要将数据集分割成的分区数。spark将为集群的每个分区运行一个任务。通常,集群中的每个cpu需要2-4个分区
建议分区数为芯数的2/4*。
因此,如果有7个执行器和5个核心,那么可以在752=70和754=140分区之间重新分区
https://spark.apache.org/docs/latest/rdd-programming-guide.html

相关问题