Spark为什么受欢迎

原因1:优秀的数据模型和丰富的计算抽象

Spark出现之前,已经有了非常成熟的计算系统MapReduce,并提供高级API(map/reduce),在集群中运行计算,提供容错,从而实现分布式计算。

虽然MapReduce提供了数据访问和计算的抽象,但是数据的重用只是简单地将中间数据写入一个稳定的文件系统(比如HDFS),所以会产生数据复制备份、磁盘I/O和数据序列化,所以在多个计算中遇到需要重用中间结果的操作时效率会很低。这种操作非常常见,比如迭代计算、交互式数据挖掘、图形计算等等。

在认识到这个问题之后,学术界的AMPLab提出了一个新的模型,叫做RDD。RDD是一种容错并行的数据结构(其实可以理解为分布式集合,操作起来就像操作本地集合一样简单)。它允许用户将中间结果数据集显式保存在内存中,并通过控制数据集的分区来优化数据存储处理。与此同时,RDD还提供了丰富的应用编程接口(地图,减少,过滤,foreach,redeceByKey…)来操作数据集。后来,AMPLab在一个叫做Spark的框架中提供并打开了RDD。

总之Spark是从MapReduce发展而来的,保留了分布式并行计算的优势,改善了其明显的缺陷。将中间数据存储在内存中提高了运行速度,提供丰富操作数据的API提高了开发速度。

原因2:完美的生态圈——全栈

目前Spark已经发展成包含多个子项目的集合,包括SparkSQL、Spark Streaming、GraphX、MLlib等。

Spark Core:实现Spark的基本功能,包括RDD、任务调度、内存管理、错误恢复、与存储系统交互等。

sparksql:Spark用来操作结构化数据的包。有了Spark SQL,我们可以用SQL来操纵数据。

Spark Streaming:Spark提供了一个用于流式传输实时数据的组件。提供操作数据流的应用编程接口。

Spark MLlib:提供通用机器学习(ML)功能的库。包括分类、回归、聚类、协同过滤等。,它还提供了额外的支持功能,如模型评估和数据导入。

GraphX(Graph Computing):Spark中用于图形计算的API性能良好,函数和运算符丰富,可以在海量数据上自由运行复杂的图形算法。

群集管理器:Spark旨在高效地将计算从一个计算节点扩展到数千个计算节点。

结构化扩展:处理结构化流,统一离线和实时API。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值