目录
一、Spark
Apache Spark
是一个快速的,多用途的集群计算系统, 相对于 Hadoop MapReduce
将中间结果保存在磁盘中, Spark
使用了内存保存中间结果, 能在数据尚未写入硬盘时在内存中进行运算。
Spark
只是一个计算框架, 不像 Hadoop
一样包含了分布式文件系统和完备的调度系统, 如果要使用 Spark
, 需要搭载其它的文件系统。
Hadoop 之父 Doug Cutting 指出:Use of MapReduce engine for Big Data projects will decline, replaced by Apache Spark (大数据项目的 MapReduce 引擎的使用将下降,由 Apache Spark 取代)。
当然现在有了更为发展趋势,更好处理流式数据的 Flink
,但 Spark
在大数据处理领域仍有一席之地。
1. Spark的优点:
-
• 速度快:
Spark
在内存时的运行速度是Hadoop MapReduce
的100
倍,基于硬盘的运算速度大概是Hadoop MapReduce
的10
倍,并且Spark
实现了一种叫做RDDs
的DAG
执行引擎, 其数据缓存在内存中可以进行迭代处理。 -
• 易上手:
Spark
支持Java、Scala、Python、R,、SQL
等多种语言的API
,并且支持超过80
个高级运算符使得用户非常轻易的构建并行计算程序,同时Spark
也可以使用基于Scala, Python, R, SQL
的Shell
交互式查询。 -
• 通用性强:
Spark
提供一个完整的技术栈,,包括SQL
执行,Dataset
命令式API
, 机器学习库MLlib
, 图计算框架GraphX
, 流计算SparkStreaming
等。 -
• 兼容性好:
Spark
可以运行在Hadoop Yarn、Apache Mesos、 Kubernets、 Spark Standalone
等集群中,可以访问HBase、 HDFS、Hive、 Cassandra
在内的多种数据库。
2. Spark中的组件
-
• Spark-Core:整个
Spark
的基础,,提供了分布式任务调度和基本的I/O
功能,并且Spark
最核心的功能是RDDs
,RDDs