Spark概览|青训营笔记

147 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第2天

Spark是什么

Apache Spark是一个开源的分布式集群计算框架,用于快速处理、查询和分析大数据。

image.png

Spark的优势

Spark是当今企业中最有效的数据处理框架。通常依赖于Map-Reduce的框架的组织现在正在转向Apache Spark框架。Spark执行内存计算,比Hadoop等Map Reduce框架快100倍。Spark在数据科学家中很受欢迎,因为它将数据分布和缓存放入了内存中,并且帮助他们优化大数据上的机器学习算法。

作为MapReduce的继任者,Spark具备以下优势特性。

1.高效性

内存计算下,Spark 比 MapReduce 快100倍。Spark使用最先进的DAG调度程序、查询优化程序和物理执行引擎,实现批量和流式数据的高性能。

2.易用性

Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建多样的应用。

3.通用性

Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。

这些不同类型的处理都可以在同一个应用中无缝使用。这对于企业应用来说,就可使用一个平台来进行不同的工程实现,减少了人力开发和平台部署成本。

4.兼容性

Spark能够跟很多开源工程兼容使用。如Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且Spark可以读取多种数据源,如HDFS、HBase、MySQL等。

对于任何一家已经部署好Hadoop基础集群的企业来说,在不需要进行任何数据迁移和处理的情况下,就可以快速使用上Spark强大的数据处理和计算能力。

悄悄说一句Spark的缺点:使用Spark的成本很高,因为它需要大量的内存进行计算。

Spark 的架构与生态

以SparkCore为核心,能够读取本地文件(如文本文件)、HDFS、Amazon S3、Hbase和Alluxio等数据源,利用Standalone、EC2、MESOS、YARN等资源调度管理,完成应用程序对数据的分析与处理,这些应用程序来自Spark的不同组件,包括Spark Streaming实时流处理应用、SparkSQL的即席查询、采样近似查询引擎BlinkDB的权衡查询、MLBase/Mllib的机器学习、GraphX的图处理和SparkR的数据计算等。

image.png

Spark 集群分为 Master 节点和 Worker 节点,相当于 Hadoop 的 Master 和 Slave 节点。Master 节点上常驻 Master 守护进程,负责管理全部的 Worker 节点。Worker 节点上常驻 Worker 守护进程,负责与 Master 节点通信并管理 Executors。

Driver 为用户编写的 Spark 应用程序所运行的进程。Driver 程序可以运行在 Master 节点上,也可运行在 Worker 节点上,还可运行在非 Spark 集群的节点上。

image.png

引用参考

mp.weixin.qq.com/s/-BHgnvN8G…

mp.weixin.qq.com/s/xbOOGlV6I…