1.Spark简介
快速且通用的集群计算平台
1.1.快速性:
- Spark扩充了流行的mapreduce计算模型
- Spark基于内存的计算
1.2.通用性:
它的设计容纳了其他分布式系统拥有的功能:批处理、迭代式计算、交互查询和流处理。优点:降低了维护成本
1.3.Spark高度开放
- 提供了python、java、scala、sql的api和丰富的内置库
- 和其他的大数据工具整合的很好,包括hadoop、kafka等
2.Spark组件
Spark包括多个紧密集成的组件,紧密集成的优点:
Spark底层优化了,基于Spark底层的组件,也得到了相应的优化。紧密集成,节省了各个组件组合使用时的部署,测试等时间。向Spark增加新的组件时,其他组件,可立即享用新组件的功能。

2.1.Spark Core
- 基本功能,包含任务调度,内存管理,容错机制等
- 内部定义了RDDs(弹性分布式数据集)
- 提供了很多api来创建和操作这些RDDs
- 应用场景,为其他组件提供底层的服务
2.2.Spark SQL
- 是spark处理结构化数据的库,就像Hive SQL,MySQL一样。
- 应用场景,企业中用来做报表统计。
2.3.Spark Streaming
- 是实时数据流处理组件,类似Storm。
- 提供了api来操作实时流数据
- 应用场景,企业中用来从kafka接受数据做实时统计。
2.4.Mlib
- 一个包含通用机器学习功能的包,machine learning lib。
- 包含分类、聚类、回归等,还包括模型评估,数据导入。
- MLlib提供的上述方法,支持集群上的横向扩展。
2.5.Graphx
是处理图的库(例如,社交网络图),并进行图的并行计算。像Spark Streaming,Spark SQL一样,它也继承了RDD api。提供了各种图的操作,和常用的图算法,例如PangeRank算法。
2.6.Cluster Managers
就是集群管理,Spark自带一个集群管理是单独调度器。常见集群管理包括Hadoop YARN,Apache Mesos。
3.Spark与Hadoop比较
Hadoop应用场景:
离线处理,对时效性要求不高
Spark应用场景:
时效性要求高的场景
机器学习等领域
4.Spark安装
Spark运行环境:
Spark是Scala写的,运行在JVM上,所以运行环境Java7+。
如果使用Python API,需要安装Python 2.6+或Python 3.4+。
安装详情见https://www.jianshu.com/p/f5d93c157c81
5. Spark的Shell
spark的shell使你能够处理分布在集群上的数据。spark把数据加载到节点的内存中,因此分布式处理可以在秒级完成。快速使迭代式计算,实时查询、分析一般能够在shells中完成。
spark提供了python shell和scala shell
python shell: bin/pyspark
scala shell:bin/spark-shell
网友评论