一、Spark是什么?
快速且通用的集群计算平台
二、Spark的特点:
- 快速:Spark扩充流行的Mapreduce计算模型,是基于内存的计算
- 通用:Spark的设计容纳了其它分布式系统拥有的功能,批处理、迭代式计算、交互查询和流处理等,降低了维护成本
- 高度开放:Spark提供Python、Java、Scala、SQL的API和丰富的内置库,Spark和其它的大数据工作整合得很好,包括hadoop、Kafka
三、Spark的组件
1、Spark Core
包含基本功能,包括任务调度、内存管理、容错机制。内部定义了RDDS(弹性分布式数据集),提供了很多APIs来创建和操作这些RDDs。
应用场景:为其它组件提供底层的服务。
2、Spark SQL
Spark处理结构化数据的库,像Hive SQL、MySQL一样。
应用场景:企业中用来做报表统计
3、Spark Streaming
实时数据流处理组件,类似Storm。Spark Streaming提供API来操作实时流数据。
应用场景:企业中用来从Kafka接收数据做实时统计
4、MLlib
一个包含通用机器学习功能的包,Machine learning lib。包含分类、聚类、回归等,还包括模型评估和数据导入。MLlib提供的上面这些方法,都支持集群上的横向扩展。
5、Graphx
处理图的库(例如社交网络图),并进行图的并行计算,像Spark Streaming,Spark SQL一样,它继承了RDD API。提供了各种图的操作,和常用的图算法,例如RangeRank算法
应用场景:图计算
6、Cluster Manager
集群管理,Spark自带一个集群管理是单独调度器。常见的集群管理包括:Hadoop YARN、Apache Mesos
四、紧密集成的优点
Spark底层优化,基于Spark底层的组件,也得到相应的优化。紧密集成,节省了各个组件使用时的部署,测试时间。向Spark增加新的组件时,其它组件可立即享用新组件的功能。
五、Spark和Hadoop比较
Hadoop应用场景:离线处理、对及时性要求不高
Spark应用场景:时效性要求高、机器学习等领域
原文地址:https://www.cnblogs.com/qikeyishu/p/10841128.html
时间: 2024-11-07 23:17:33