Spark基础学习

1.Spark概述

Spark是一种基于内存的快速,通用可扩展的大数据分析引擎。

发展历史:

image-20210713141438921

Spark特点:

1)、运行速度快:与Hadoop的MR相比,Spark基于内存的运算要快100倍以上,基于硬盘的计算也快10倍以上。使用DAG(有向无环图)执行引擎以支持循环数据流与内存计算。计算结果存放于内存中,

2)、易用性好:支持使用Scala、java、Python和R语言进行编程,可以通过Spark shell进行交互式编程。

3)、通用性强:spark提供了完整而又强大的的工具,包括sql查询,流式计算,机器学习和图算法组件等等

4)、兼容性强:可运行与独立的集群环境中,可运行与Hadoop中,也可运行在Amazon EC2等云环境中。并且可以访问HDFS,Hbase,hive等多种数据源。

Spark主要的模块:

image-20210713141601479

spark core:实现spark的基本功能,包含任务调度,内存管理,错误恢复,与存储系统交互等模块。同时其中还包含了对RDD(弹性分布式数据集)的API定义。

Spark SQL:是Spark用来操作结构化数据的程序包,通过使用Spark SQL,可以使用SQL或者HQL来查询数据,支持多种数据来源如:Hive表,Parque以及JSON等。

Spark Streaming:是Spark提供对实时数据进行流式计算的组件。包括用来操作数据流的API,并且与Spark core中的RDD API高度对应。

Spark MLib:提供常见的机器学习(ML)功能的程序库。包含分类,回归,聚类,协同过滤,还提供了模型评估,数据导入等功能。

集群管理器:Spark设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算,为了实现这样的需求,同时获得最大的灵活性,Spark支持在各种集群管理器(Cluster Manager)上运行,包括Hadoop YARN,Apache Mesos,以及Spark自带的调度器,叫做独立调度器。