一、Spark概述
1、什么是Spark
Spark是一种快速、通用、可扩展的大数据分析引擎。它集批处理、实时流处理、交互式查询和图计算于一体,避免了多种运算场景下需要部署不同集群带来的资源浪费。
2、Spark的优点
①速度。与hadoop的MR相比,Spark的运算要快100倍以上;而基于硬盘的计算也要快10倍以上。
②易用。Spark支持java、python、scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用.而且Spark支持交互式的python和scala的shell。
③通用性。Spark提供了统一的解决方案,可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(MLlib)和图计算(GraphX).作为统一的解决方案,Spark不仅没有牺牲性能作为代价,相反,在性能方面具有很大的优势。
④可融合性。Spark可以非常方便的与其他开源产品进行融合,比如Hadoop的YARN和Apache Mesos,并且可以处理所有Hadoop支持的数据,包括HDFS、Hbase和Cassandra。
3、Spark的架构综述
(1)Spark的整体架构如下图所示。
其中,Driver是用户编写的数据处理逻辑,这个逻辑中包含用户创建的SparkContext。SparkContext是用户逻辑与Spark集群主要的交互接口,它会和ClusterManager交互,包括向它申请计算资源等。ClusterManager负责集群的资源管理和调度,现在支持Standalone、Apache Mesos和Hadoop的YARN。Work