Spark初识(学习总结一)

一、什么是spark

官网在此

Apache Spark™是用于大规模数据处理的统一分析引擎。
美国加州大学伯克利分校AMP实验室开发的大数据处理框架。
Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目。
Spark可以用R语言、Java、Scala和python进行编写。使用R语言编写占到极少数,python编写spark效率不及Java和Scala,Java编写代码量多。Scala在编写spark占到很大优势,Scala是一种面向对象、函数式编程语言,能够轻松操作分布式数据集。

二、Spark四大特点

1、运行速度快
spark运行基于内存,运行效率为Hadoop–Map Reduce的100倍。
引入DAG执行引擎。

2、易用性好
Spark可以用R语言、Java、Scala和python进行编写。使用R语言编写占到极少数,python编写spark效率不及Java和Scala,Java编写代码量多。Scala在编写spark占到很大优势,Scala是一种面向对象、函数式编程语言,能够轻松操作分布式数据集。

3、通用性强
在Spark生态圈中,Spark SQL,Spark Streaming,MLib(machine learning),GraphX四个组件无缝集成。
Spark初识(学习总结一)_第1张图片
4、到处运行
您可以使用其独立群集模式,EC2,Hadoop YARN,Mesos或Kubernetes运行Spark 。访问HDFS, Alluxio, Apache Cassandra, Apache HBase,Apache Hive以及数百个其他数据源中的数据。

三、Spark四种运行模式:

1. local 模式,适用于测试
2. standalone,并非是单节点,而是使用 spark 自带的资源调度框架
3. yarn,最流行的方式,使用 yarn 集群调度资源
4. mesos,国外使用的多

四、Spark生态圈

1、Spark Core
Spark Core是BDAS(伯克利数据分析栈)生态的核心组件,是一个分布式大数据处理框架。
Spark Core提供了多种资源调度管理、通过DAG计算模型、引入RDD(弹性分布式数据集)抽象概念,保证了Sspark的高效性和高容错性。

2、Spark Streaming
Spark Streaming是一个对实时数据进行高吞吐、高容错的流式数据处理系统。
它可以对多种数据源进行的复杂操作,并将结果最终存储在外部文件系统。
优势:提供的处理引擎和RDD编程模型可以同时进行批处理和流处理。
Spark初识(学习总结一)_第2张图片
3、Spark SQL
Spark SQL的前身为Shark,在此之前,我们用Hive作为在Hadoop上进行SQL语句操作的最好的工具,Hive的高性能和Spark的兼容性,诞生了Shark。
Shark在2014年7月1号终止。Shark官网在此
Spark Sql 是Spark来操作结构化数据的程序包,可以让我们使用SQL语句的方式来查询数据,Spark支持多种数据源,包含Hive表,parquest以及JSON等内容。

4、BlinkDB
BlinkDB是一个用于在海量数据上运行交互式SQL查询的大规模并行查询引擎。
核心思想:
1、自适应优化框架
2、动态样本选择策略

5、MLBase/MLlib
MLlib是Spark的机器学习(ML)库。其目标是使实用的机器学习可扩展且简单,让初识机器学习的用户能够轻松使用MLBase。
MLBase分为四个部分:

MLRuntime:是由Spark Core提供的分布式计算框架,来运行Optimizer优化过的算法进行数据的计算并输出分析结果。
MLIib:实现库
MLl:实现特征抽取和高级ML编程抽象算法 ML
Optimizer:优化器。将声明的任务转化成复杂的学习计划,最终产出最优的模型和计算结果。

从较高的层面来说,MLib提供了以下工具:

1、ML Algorithms(ML算法):常见的学习算法,如分类,回归,聚类和协同过滤
2、Featurization(特征化):特征提取,转换,降维和选择 3、Pipelines(管道):用于构建,评估和调整ML管道的工具
4、Persistence(持久性):保存和加载算法,模型和管道 5、Utilities(实用程序):线性代数,统计,数据处理等。

6、GraphX
GraphX是Spark中用于图形和图形并行计算的新组件。在较高的层次上,GraphX 通过引入一个新的Graph抽象来扩展Spark RDD:一个定向的多图,其属性附加到每个顶点和边。为了支持图计算,GraphX公开了一组基本的操作符(例如,子图,joinVertices和 aggregateMessages),以及所述的优化的变体预凝胶 API。此外,GraphX包含越来越多的图算法和 构建器,以简化图形分析任务。

7、SparkR
SparkR是一个R包,它提供了一个轻量级的前端来使用来自R的Apache Spark。在Spark 2.4.0中,SparkR提供了一个分布式数据帧实现,支持选择,过滤,聚合等操作(类似于R数据帧, dplyr)但是在大型数据集上。SparkR还支持使用MLlib进行分布式机器学习。

你可能感兴趣的:(Spark总结)