Spark的限制

1. 目的

本章我们将讨论Spark的限制(不支持实时处理,小文件的问题,没有专门的文件管理系统等)。

2. Spark的限制

正如我们所知,Spark是业界广泛使用的下一代大数据工具,但是它存在一定的限制。

1)不支持实时处理

在Spark Streaming中,将到达的实时数据流分成预定义时间间隔的批次,并将每批数据视为RDD(Resilient Distributed Dataset),然后使用map、join、reduce等操作处理这些RDD,分批返回这些操作的结果。因此,这是准实时处理(不是实时处理)实时数据。

2)小文件问题

在生成的RDD中,每个文件都将成为一个分区,因此RDD中会有大量的微小分区。如果我们希望在处理过程中提高效率,RDD应该被重新分区,这需要在网络上进行大规模的洗牌(Shuffle)。

3)没有文件管理系统

Spark没有自己的文件管理系统,因此它依赖于其他一些平台,如Hadoop或其他基于云的平台。

4)昂贵

如果我们希望经济高效地处理大数据,内存容量可能会成为瓶颈,因为将数据保存在内存中非常昂贵,内存消耗非常高。Spark需要大量内存来运行,因此Spark的成本相当高。

5)算法的数量较少

Spark MLlib里的算法数量较少。

6)手动优化

Spark作业需要手动优化,并且适用于特定的数据集。如果我们想在Spark中正确的分区和缓存,那么应该手动控制。

7)迭代处理

在Spark中,数据批量迭代,每个迭代单独的计划和执行。

8)延迟

与Flink相比,Spark具有更高的延迟。

9)窗口条件

Spark不支持基于记录的窗口条件,它只有基于时间的窗口条件。

3. 结论

虽然Spark有许多限制,但在大数据解决方案市场上仍然很流行。有各种技术正在赶超Spark,比如Flink能够更好的对流进行实时处理。

Spark的限制
滚动到顶部