如果数据大小超过可用内存,是什么让Spark快速?

kma*_*hur 3 hadoop bigdata apache-spark

在我试图理解火花的每个地方它都说它很快,因为它将数据保存在内存中而不是map reduce.让我们举个例子 -

我有一个5节点火花簇,每个都有100 GB RAM.让我们说我有500 TB的数据来运行一个火花工作.现在火花可以保持的总数据是100*5 = 500 GB.如果它可以在任何时间点仅在内存中保留最多500 GB的数据,那么是什么让它快速闪电?

Pau*_*aul 10

Spark并不神奇,也无法改变计算的基本原理. Spark使用内存作为渐进增强功能,并且对于无法保存在内存中的大型数据集,它将回退到磁盘I/O. 在必须从磁盘扫描表的情况下,火花性能应与涉及从磁盘扫描表的其他并行解决方案相当.

假设500 TB中只有0.1%是"有趣的".例如,在营销渠道中,广告展示次数较多,点击次数较少,销售次数较少,重复销售次数也较少.程序可以过滤庞大的数据集,并告诉Spark在内存中缓存进一步处理所需的较小,过滤和校正的数据集. 较小的过滤数据集的Spark缓存显然比重复的磁盘表扫描和重复处理较大的原始数据快得多.