火花驱动程序如何处理比其内存更大的数据?考虑集群上的TB数据,我们通过密钥或收集进行减少

时间:2018-05-07 06:09:36

标签: apache-spark

火花驱动程序如何处理大于内存的数据?考虑集群上的TB数据,我们通过密钥或收集进行减少。它是否将数据溢出到磁盘?即使它确实如此,当我们在驱动程序上有一个GB的磁盘空间并且我们正在处理TB时会发生什么。

1 个答案:

答案 0 :(得分:2)

Spark不会“处理”过多的数据返回给驱动程序。驱动程序将遇到内存不足错误。

应始终谨慎地收集或运行需要数据转到单个节点(驱动程序与否)的操作。

正如documentation

所警告的那样
  

这会导致驱动程序内存不足,因为collect()会将整个RDD提取到一台机器上;如果您只需要打印RDD的一些元素,更安全的方法是使用take():rdd.take(100).foreach(println)。