什么是Apache Spark -
- ApacheSpark是一个开源的数据处理引擎,使用简单的编程结构在各种计算机集群中实时存储和处理数据。
- Spark拥有一致的、可组合的API,并且Spark支持多种语言,如Python、Java、Scala和R。
- 开发人员和数据专家将Spark纳入他们的应用程序,以快速查询、分析和转换大规模的数据。
Spark架构


Hadoop与Apache Spark
| Hadoop | 火花 |
| 1.在Hadoop中使用MapReduce处理数据很慢 | 1.Spark处理数据的速度比MapReduce快100倍,因为它是在内存中完成的。 |
| 2.进行数据的批量处理。 | 2.同时进行数据的批处理和实时处理。 |
| 3.MapReduce,开发人员需要手工编码每一个操作,这使得它的工作非常困难。 | 3.S park很容易编程,因为它有大量的高级运算符与RDD - 弹性分布式数据集。 |
| 4.4.Hadoop是一个更便宜的选择,而在成本方面的比较。 | 4.Spark需要大量的RAM在内存中运行,因此增加了集群,从而增加了成本。 |
Spark的特点--
-
快速处理 Spark包含弹性分布式数据集(RDD),节省了读写操作的时间,因此,它的运行速度几乎是Hadoop的10-100倍。
-
内存计算在Spark中,数据被存储在RAM中,因此它可以快速访问数据并加快分析速度。
-
灵活Spark支持多种语言,允许开发者用Java、Scala、R或Python编写应用程序。
-
容错性 Spark包含弹性分布式数据集(RDD),旨在处理集群中任何工作节点的故障。因此,它确保数据的损失减少到零。
-
更好的分析Spark有一套丰富的SQL查询、机器学习算法、复杂的分析等。通过所有这些功能,可以更好地进行分析。
星火的组成部分


Spark核心
Spark核心是大规模并行和分布式数据处理的基础引擎
- 内存管理
- 故障恢复
- 在集群上调度、分配和监控作业
- 与存储系统进行交互
RDD(Resilient Distributed Dataset)
Spark核心嵌入了RDDs,它是一个不可变的容错对象的分布式集合,可以被并行操作。RDD执行两种操作。


Spark SQL-
Spark SQL框架组件用于结构化和半结构化数据处理。它提供了一个名为DataFrames的编程抽象,也可以作为一个分布式SQL查询引擎。


Spark Streaming
Spark Streaming是一个轻量级的API,允许开发者轻松地进行批量处理和实时数据流。它提供安全、可靠和快速的实时数据流处理。


Spark MLlib
MLlib是一个低级别的机器学习,使用简单,可扩展,并与各种编程语言兼容。MLlib简化了可扩展机器学习算法的部署和开发。


GraphX
GraphX是Spark自己的图形计算引擎和数据存储。


总结
在这篇文章中,我们已经了解了与Apache Spark有关的基本内容。我们还了解了Spark的架构,Spark的特点,Spark的组件,以及Hadoop框架和Apache Spark之间的区别。