我已经读到太多的小分区会因为开销而影响性能,例如向执行者发送大量任务。
使用最大分区的缺点是什么为什么我看到100 MB范围内的建议?
我可以看到一些潜在的问题:
如果您丢失了分区,则需要大量工作来重新计算。对于许多较小的分区,您可能会更频繁地丢失数据,但是在运行时中的差异将较小。
如果您在大型分区上执行的少数几个任务之一比其他任务需要更长的计算时间,这将使其他内核无法使用,但是对于较小的分区,这样可以更好地将其分配到整个群集中。
这些问题有意义吗?还有其他问题吗?谢谢!
最佳答案
这两个潜在问题是正确的。
为了更好地使用群集,应该定义足够大的分区来计算HDFS块(通常为128/256 MB),但是要避免超出分区以获得更好的分布,从而实现水平扩展以提高性能(最大化CPU使用率)。
关于apache-spark - 大型 Spark 隔板尺寸的缺点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59240369/