spark组成

spark spark = SparkCore + SparkSq1 + SparkStreaming + MLlib + Graphx

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

Spark SQL:是Spark用来操作结构化数据的程序包。SparkSQL,我们可以使用SQL或者ApacheHive版本的SQL方言(HQL)来查询数据。SparkSQL支持多种数据源,
比如Hive表、Parquet以及JSON等。。

Spark Streaming:是Spark提供的对实时数据进行流式计算的组件。提供了用来操作数据流的API,并且与Spark Core中的RDdD API高度对应。。
Spark MLlib:提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。。

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

特点

1)Master
Spark特有资源调度系统的Leader。掌管着整个集群的资源信息,类似于Yarn框架中的ResourceManager,主要功能:。
(1)监听Worker,看Worker是否正常工作;
(2)Master 对Worker、Application 等的管理(接收worker的注册并管理所有的worker,接收client提交的application,(FIFO)调度等待的application并向worker提交)。。

2)Worker,Spark特有资源调度系统的Slave,有多个。每个Slave掌管着所在节点的资源信息,类似于Yarn框架中的NodeManager,主要功能:。(1)通过RegisterWorker注册到Master;。
(2)定时发送心跳给Master;。
(3)根据master发送的application配置进程环境,并启动StandaloneExecutorBackend(执行Task所需的临时进程)

1)Driver(驱动)。
Spark的驱动器是执行开发程序中的main I方法的进程。它负责开发人员编写的用来创
建SparkContext、创建RdD,以及进行Rdd的转化操作和行动操作代码的执行。如果你是用spark shell,那么当你启动Spark shell的时候,系统后台自启了一个Spark驱动器程
序,就是在Sparkshell中预加载的一-个叫作Sc的SparkContext对象。如果驱动器程序止,那么Spark应用也就结束了。主要负责:。
(1)把用户程序转为任务。
(2)跟踪Executor的运行状况。
(3)为执行器节点调度任务。
(4)UI展示应用运行状况。

2)Executor(执行器)。
Spark Executor是一个工作进程,负责在Spark 作业中运行任务,任务间相互独立。
Spark应用启动时,Executor节点被同时启动,并且始终伴随着整个Spark应用的生命周期而存在。如果有Executor节点发生了故障或崩溃,Spark 应用也可以继续执行,会将出错节点上的任务调度到其他Executor节点上继续运行。主要负责:。
(1)负责运行组成Spark应用的任务,并将状态信息返回给驱动器进程;。
(2)通过自身的块管理器I(Block Manager)为用户程序中要求缓存的RdD提供内存式存储。RdD是直接缓存在Executor进程内的,因此任务可以在运行时充分利用缓存数据加速运算。。
总结:Master 和Worker是Spark的守护进程,即Spark在特定模式下正常运行所必须的进程。Driver和Executor是临时进程,当有具体任务提交到Spark集群才会开启的进程。。

你可能感兴趣的:(spark组成)