根据执行器,核心和内存确定spark在YARN上运行中的分区编号

问题描述

如何根据执行程序,内核和内存确定Spark(在YARN上运行)中没有分区。 由于我是新手,所以在实际场景中没有太多经验

我知道要决定分区的许多事情,但是任何详细的生产常规方案说明都将非常有帮助。

预先感谢

解决方法

并行收集的一个重要参数是 分区以将数据集切入。 Spark将为每个任务运行一项任务 集群的分区。通常,您需要每个分区2-4个分区 集群中的CPU

建议分区数为2/4 *内核数。

因此,如果您有7个具有5个核心的执行程序,则可以在7 * 5 * 2 = 70和7 * 5 * 4 = 140分区之间重新分区

https://spark.apache.org/docs/latest/rdd-programming-guide.html

,

具有spark 3.0的IMO和具有自适应查询执行功能的AWS EMR 2.4.x,通常最好让spark处理它。如果您确实想对其进行手动调整,则答案通常可能很复杂。一种不错的选择是使cpus数量为2或4倍。尽管这对于大多数数据大小很有用,但对于非常大和非常小的数据集而言,这都会成为问题。在这种情况下,将每个分区的目标容量设置为约128MB很有用。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...