Spark初见(一)

1. 介绍

1.1 什么是Spark

Spark官网 中 有一句话介绍的非常清晰:

spark-desc.jpg

Apache Spark™ 是一个用于大规模数据处理的统一分析引擎。

右侧显示目前spark已经出了3.0预览版,较新的稳定发布版本为2.4.4 。

Spark是2009年由加州大学伯克利分校AMP实验室开发的通用内存并行计算框架,2013年被捐赠给Apache软件基金会,它用于构建大型的,低延迟的数据分析应用程序。

1.2 为什么会出现Spark

因为MapReduce计算模型延迟过高,无法胜任实时、快速计算的需求,因而只适用于离线批处理的应用场景。

  1. MapReduce会将一个任务中的中间结果输出到磁盘用于容错,这就增加了IO的开销。
  2. 传统的MapReduce系统,如Hadoop,是为了运行长达数小时的批量作业而设计的,在某些极端情况下,提交一个任务的延迟非常高。

因此,Spark出现了,它将计算的数据,中间结果都存储在内存中,大大减少了磁盘IO的开销。它采用了事件驱动的类库AKKA来启动任务,通过线程池复用线程来避免进程或线程启动和切换开销。

更多MapReduce vs Spark 对比

2. Spark的四大特性

2.1 快速

spark-speed.png

速度相比于Hadoop快100倍

Spark使用一个DAG有向无环图,一个查询优化器和一个物理引擎,提高了批处理数据和流处理数据的性能。

2.2 易用性

df = spark.read.json("logs.json") 
df.where("age > 21")
    .select("name.first").show()

快速的使用Java,Scala,Python,R和SQL写一个应用

Spark提供了80多个高级操作,以使构建一个并行应用程序 更加简单。您可以通过Scala,Python,R和SQL Shell交互使用它。

2.3 通用性

spark-stack.png

Spark提供了一站式的开发方案,包括 SQL and DataFrames, MLlib for machine learning, GraphX, and Spark Streaming,你可以在同一应用中无缝的使用这些库。这样大大降低了企业的使用和维护成本。

2.4 兼容性

spark-runs-everywhere.png

Spark可以非常方便的与其他开源产品进行融合使用,比如Hadoop,Mesos, Kubernetes,Hbase等。

Spark也可以不依赖于第三方的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使用门槛,使得所有人都可以非常容易地部署和使用Spark。

3. Spark的组成

spark-arc.png

SparkCore

​ 包含Spark的基本功能,包含任务调度、RPC、序列化和压缩,内存管理,容错机制等

内部定义了RDDs(弹性分布式数据集)

提供了很多APIs来创建和操作这些RDDs

应用场景,为其他组件提供底层的服务

SparkSQL

​ Spark Sql 是Spark来操作结构化数据的程序包,可以使用SQL语句的方式来查询数据

​ Spark支持 多种数据源,包含Hive表,parquest以及JSON等内容

​ 应用场景,企业中用来做报表统计

SparkStreaming

是实时数据流处理组件,类似Storm

Spark Streaming提供了API来操作实时流数据

应用场景,企业中用来从Kafka接收数据做实时统计

MLlib

​ 一个包含通用机器学习功能的包,Machine learning lib

​ 包含分类,聚类,回归等,还包括模型评估和数据导入。

MLlib提供的上面这些方法,都支持集群上的横向扩展。

应用场景,机器学习。

GraphX

是处理图的库(例如,社交网络图),并进行图的并行计算。

像Spark Streaming,Spark SQL一样,它也继承了RDD API。

它提供了各种图的操作,和常用的图算法,例如PangeRank算法。

应用场景,图计算。

Tachyon

​ 以内存为中心高容错的的分布式文件系统。

Cluster Managers:

就是集群管理,Standalone模式下,Spark自带一个集群管理是单独调度器通常由Master来完成。

常见集群管理包括Hadoop YARN,Apache Mesos

更详细的介绍可查看 Spark Components

往期文章一览

千万不要这样使用 Arrays.asList !

八张图带你认识Java

Java开发必备手册

关注码上实战

推荐阅读更多精彩内容