Spark介绍
一 Spark是什么
Spark是一个快速且通用的集群计算平台。
二 Spark的特点
1 Spark是快速的
Spark扩充了流行的Mapreduce计算模型
Spark是基于内存的计算
2 Spark是通用的
Spark的设计容纳了其它分布式系统拥有的功能
批处理(Hadoop),迭代式计算(机器学习)、交互查询(Hive)和流处理(Storm)等
优点:降低了维护成本
3 Spark是高度开放的
Spark提供了Python,Java,Scala,SQL的API和丰富的内置库。
Spark和其它的大数据工具整合得很好,包括hadoop,kafka等。
三 Spark历史
诞生于2009年,加州大学伯克利分校AMP实验室的一个研究项目。
最初是基于Hadoop Mapreduce的。
发现Mapreduce在迭代式计算和交互上低效,引入了内存存储。
2010年3月份Spark开源
2011年AMP实验室在Spark上开发高级组件,像Spark Streaming
2013年转移到了Apache下,不久便成为顶级项目。
四 Spark的组件
Spark包括多个紧密集成的组件
1 Spark Core
包含了Spark的基本功能,包含任务调度,内存管理,容错机制等等。
内部定义了RDD(弹性分布式数据集)
提供了很多APIs来创建和操作这些RDD
应用场景:为其他组件提供底层的服务
2 Spark SQL
是Spark处理结构化数据的库,就像Hive SQL,Mysql一样。
应用场景:企业中用来做报表统计
3 Spark Streaming
是实时数据流处理组件,类似Storm
Spark Streaming提供了API操作实时流数据
应用场景:企业中用来从Kafka接收数据做实时统计。
4 Mlib
一个包含通用机器学习功能的包,Machine learning lib
包含分类、聚类、回归等,还包括模型评估和数据导入。
MLib提供的上面这些方法,都支持集群上的横向扩展。
应用场景:机器学习
5 Graphx
是处理图的库(例如,社交网络图),并进行图的并行计算。
像Spark Streaming,Spark SQL一样,它也继承了RDD API。
它提供了各种图的操作,和常用的图算法,例如PangeRank算法。
应用场景:图计算。
6 Cluster Managers
就是集群管理,Spark自带一个集群管理是单独调度器。
常见集群管理包括Hadoop YARN,Apache Mesos
五 紧密集成的优点
Spark底层优化了,基于Spark底层的组件,也得到了相应的优化。
紧密集成,节省了各个组件组合使用时的部署,测试等时间。
向Spark增加新的组件时,其他组件,可立刻享用新组件的功能。
六 Spark和Hadoop的比较
1 Hadoop应用场景
离线处理
对时效性要求不高
2 Spark应用场景
时效性要求高的场景
机器学习等领域
3 比较
Doug Cutting的观点
这是一个生态系统,每个组件都有其作用,各善其职即可。
Spark不具有HDFS的存储能力,要借助于HDFS等持久化数据。
大数据将会孕育出更多的新技术。