ITPub博客

首页 > 大数据 > Spark > Spark适用于哪些场景?不适用于哪些场景?

Spark适用于哪些场景?不适用于哪些场景?

Spark 作者:候鸟之恋 时间:2022-08-15 16:17:57 0 删除 编辑

Spark是一种通用的大数据计算框架,和传统的大数据技术MapReduce有本质区别。前者是基于内存并行计算的框架,而mapreduce侧重磁盘计算。Spark是加州大学伯克利分校AMP实验室开发的通用内存并行计算框架,用于构建大型的、低延迟的数据分析应用程序。

 

Spark同样支持离线计算和实时计算两种模式。Spark离线计算速度要比Mapreduce快10-100倍。而实时计算方面,则依赖于SparkStreaming的批处理能力,吞吐量大。不过相比Storm,SparkStreaming并不能做到真正的实时。

 

Spark 适用于哪些场景?

从 Spark的设计理念(基于内存的迭代计算框架)出发,其最适合有迭代运算的或者需要多次操作特定数据集的应用场合。并且迭代次数越多,读取的数据量越大,Spark的应用效果就越明显。

 

因此,对于机器学习之类的 “迭代式”应用,Spark可谓拿手好戏,要比HadoopMapReduce快数十倍。另外,SparkStreaming因为内存存储中间数据的特性,处理速度非常快,也可以应用于需要实时处理大数据的场合。

 

Spark 不适用于哪些场景?

对于那种异步细粒度更新状态的应用,例如 Web服务的存储或增量的Web爬虫和索引,也就是对于那种增量修改的应用模型不适合。gendan5.com/zs/djia.html

 

Spark也不适合做超级大的数据量的处理,这里所说的“超级大”是相对于这个集群的内存容量而言的,因为Spark要将数据存储在内存中。一般来说,10TB以上(单次分析)的数据就可以算是“超级大”的数据了。

 

运用 Spark有哪些优势呢?

1、高效性

不同于 MapReduce将中间计算结果放入磁盘中,Spark采用内存存储中间计算结果,减少了迭代运算的磁盘IO,并通过并行计算DAG图的优化,减少了不同任务之间的依赖,降低了延迟等待时间。内存计算下,Spark 比 MapReduce 快100倍。

 

2、易用性

不同于 MapReduce仅支持Map和Reduce两种编程算子,Spark提供了超过80种不同的Transformation和Action算子,如map,reduce,filter,groupByKey,sortByKey,foreach等,并且采用函数式编程风格,实现相同的功能需要的代码量极大缩小。

 

3、通用性

Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。

 

4、兼容性

Spark能够跟很多开源工程兼容使用。如Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且Spark可以读取多种数据源,如HDFS、HBase、MySQL等。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70014563/viewspace-2910507/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-03-02

  • 博文量
    189
  • 访问量
    127621