Spark框架概述
Spark是用于大规模数据处理的统一分析引擎。
是一款分布式内存计算统一分析引擎。
Spark风雨十年
本次是最新的Spark3.2.0版本进行授课。
hadoop和Spark的区别
Hadoop的类型是基础平台,包含计算,存储,调度,运用于海量数据的批处理(磁盘迭代处理),价格方面对机器要求低,便宜,编程采用的是Map+Reduce,API较为底层,算法适应差。存储结构MapReduce中间计算结果在HDFS磁盘上,延迟大,运行方式是Task以进程方式维护,任务启动慢。
Spark是纯计算工具(分布式),场景是海量数据的批处理(内存迭代运算,交互式计算)、海量数据流计算,堆内存是有要求,相对较贵,编程范式是RDD组成DAG有向无环图,API较为顶层,方便使用,存储结构是RDD中间运算结果在内存中,延迟小,Task以线程方式维护,任务启动快,可批量创建提高并行能力。
Spark的四大特点:速度快,通用性强,支持多种运行方式,易于使用
Spark框架模块:Spark Core、Spark SQL、Spark Streaming、Spark GraphX、Spark MLlib
Spark Core:Spark的核心,Spark核心功能均由Spark Core模块提供,是Spark的运行基础。以RDD为数据抽象,提供Python、java、Scala、R语言的API,可以编程进行海量离线数据批处理计算。
Spark SQL:是基于Spark Core至上,提供结构化数据的处理模块。SparkSQL支持以SQL语言对数据进行处理,SparkSQL本事针对离线计算场景。同时基于SparkSQL。Spark提供了StructrueStreaming模块,可以以SparkSQL为基础,进行数据的流式计算
SparkStreaming:以Spark Core为基础,提供数据的流式计算功能。
多种运行模式:本地模式(以一个独立进程,多个线程来模拟),Standalone模式(以独立进程,并组成Spark集群环境),Hadoop YARN模式(运行在YARN的容器内部并组成Spark集群环境)
Spark的架构角色(YARN和Spark进行对比)
YARN主要有四类角色,从2个层面去看:
资源管理层面: 集群资源管理者(Master):ResourceManager
单价资源管理者(Worker):NodeManager
任务计算层面: 单任务管理者(Master):ApplicationMaster
单任务执行者(worker):Task(容器内计算框架的工作角色)
Spark的运行角色
和yarn是相同的
问题探究
Spark的诞生解决了哪些问题?
答:海量数据的计算,可以进行离线批处理以及实时流计算
Spark有哪些模块?
答:核心SparkCore、SQL计算(SparkSQL)、流计算(SparkStreaming)、图计算(GraphX)、机器学习(MLlib)
Spark特点有哪些?
答:速度快,使用简单,通用性强,多种模式运行
Spark的运行模式?
答:本地模式,集群模式,云模式
Spark的运行角色(对比YARN)?
答:Master,Worker,Driver,Executor