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

时间:2015-09-03 22:25:36

标签: hadoop apache-spark bigdata

无处不在我尝试理解火花它说它很快,因为它将数据保存在内存中而不是map reduce。让我们举个例子 -

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

1 个答案:

答案 0 :(得分:9)

Spark不是神奇的,无法改变计算的基本原则。 Spark使用内存作为渐进增强功能,并且可以回退到磁盘I / O,可以使用大量数据集不要留在记忆中。在必须从磁盘扫描表的情况下,火花性能应与涉及磁盘表扫描的其他并行解决方案相当。

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