火花所需的分区数

Number of partitions needed in spark

在 2013 年 Spark 峰会的雅虎演讲之一中提到了这个 formula:

partitions needed = total data size/(memory size/number of cores)

假设一台64Gb内存主机,16核CPU。

演示中提到要处理 3Tb 的数据,需要的分区数是 46080。我很难得到相同的结果。请说明计算方法,46080这个数字是怎么来的?

查看介绍(可用here),可用信息为:

  • 64Gb内存主机
  • 16芯cpu
  • 压缩比 30:1,2 倍开销

您的公式在计算时应使用未压缩的数据大小,因此,在这种情况下您需要先将其解压缩。

数据大小 = 3Tb * 30 * 2 = 180Tb = 184320Gb

运行它通过公式得到: 184320Gb/(64Gb/16) = 46080 个分区