如何解决根据执行器,核心和内存确定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很有用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。