一、Spark框架

Spark 框架模块包含:Spark Core、 Spark SQL、 Spark Streaming、 Spark GraphX、 Spark MLlib,而后四项的能力都是建立在核心引擎之上。
在这里插入图片描述
【Spark Core】:Spark的核心,Spark核心功能均由Spark Core模块提供,是Spark运行的基础。Spark Core以RDD为数据抽象,提供Python、Java、
Scala、R语言的API,可以编程进行海量离线数据批处理计算。

【SparkSQL】:基于SparkCore之上,提供结构化数据的处理模块。SparkSQL支持以SQL语言对数据进行处理,SparkSQL本身针对离线计算场景。同
时基于SparkSQL,Spark提供了StructuredStreaming模块,可以以SparkSQL为基础,进行数据的流式计算。

【SparkStreaming】:以SparkCore为基础,提供数据的流式计算功能。
MLlib:以SparkCore为基础,进行机器学习计算,内置了大量的机器学习库和API算法等。方便用户以分布式计算的模式进行机器学习计算。

【GraphX】:以SparkCore为基础,进行图计算,提供了大量的图计算API,方便用于以分布式计算模式进行图计算

二、spark运行模式

Spark提供多种运行模式,包括:

1、本地模式(单机)
本地模式就是以一个独立的进程,通过其内部的多个线程来模拟整个Spark运行时环境

2、 Standalone模式(集群)
Spark中的各个角色以独立进程的形式存在,并组成Spark集群环境

3、Hadoop YARN模式(集群)
Spark中的各个角色运行在YARN的容器内部,并组成Spark集群环境

-4、Kubernetes模式(容器集群)
Spark中的各个角色运行在Kubernetes的容器内部,并组成Spark集群环境

  • 云服务模式(运行在云平台上)
    在这里插入图片描述

二、 Spark的架构角色

1、【YARN角色回顾】
YARN主要有4类角色,从2个层面去看:
资源管理层面
(1)集群资源管理者(Master):ResourceManager
(2)单机资源管理者(Worker):NodeManager
任务计算层面
(1) 单任务管理者(Master):ApplicationMaster
(2)单任务执行者(Worker):Task(容器内计算框
架的工作角色)

2、【Spark运行角色】
Spark中由4类角色组成整个Spark的运行环境
资源管理层面:
(1)管理者:Spark是Master角色,Yarn是ResourceManager
(2)工作中:Spark是Worker角色,Yarn是NodeManager
从任务执行层面
(1)某任务管理者:Spark是Driver角色,Yarn是ApplicationMaster
(2)某任务执行者:Spark是Executor角色,Yarn是容器中运行的具体工作进程。

正常情况下Executor是干活的角色,不过在特殊场景下(Local模式)Driver可以即管理又干活

【总结】
在这里插入图片描述

Logo

大数据从业者之家,一起探索大数据的无限可能!

更多推荐