Spark学习<->:设计理念和基本架构

Spark学习
-本系列学习书籍《Spark内核设计的艺术:架构设计与实现》--耿嘉安
一.本文内容:概括性讲述Spark的设计理念和基本架构
二.Spark设计理念
1.Spark包含很多子模块,理解这些模块有助于我们掌握Spark的设计思想。Spark的模块按照重要程度可分为核心功能和扩展功能。核心功能是Spark设计理念的核心实现,也是Spark陆续加入新功能的基础。在核心功能之上,通过不断地将丰富的扩展功能持续集成到Spark中,使得Spark满足更多市场、应用和用户的需求,促使Spark生态圈更加繁荣。
2.Spark在编程模型方面没有采用Hadoop的MapReduce编程模型,而是封装了丰富的转换与执行的API。开发人员可以充分利用这些API编写自己的Spark应用程序,而不用拘泥于如何套用MapReduce编程模型中的Mapper或Reducer。Spark提供的转换API将会在底层将数据封装为RDD,并对这些RDD进行转换、构建血缘、构建DAG、分片划分等处理,这些过程都是透明的,使得开发人员能更加专注于自己的业务实现。
3.Spark的模块设计:整个Spark主要由Spark Coke、Spark SQL、Spark Streaming、GraphX、MLlib组成,而后四项的能力都是建立在核心引擎之上
1)Spark核心功能:Spark Core中提供了Spark最基础与最核心的功能
(1)基础设施
(2)SparkContext
(3)SparkEnv
(4)存储体系
(5)调度系统
(6)计算引擎
2)Spark扩展功能
(1)Spark SQL
(2)Spark Streaming
(3)GraphX
(4)MLlib
4.Spark的模型设计:
1)Spark编程模型
2)RDD计算模型
三.Spark的基本架构
1.从集群部署的角度来看,Spark集群由集群管理器(Cluster Manager)、工作节点(Worker)、执行器(Executor)、驱动器(Driver)、应用程序(Application)等部分组成

1)Cluster Manager:Spark的集群管理器,主要负责对整个集群资源的分配与管理。Cluster Manager在YARN部署模式下为ResourceManager;在Mesos部署模式下为MesosMaster;在Standalone部署模式下为Master。Cluster Manager分配的资源属于一级分配,它将各个Worker上的内存、CPU等资源分配给Application,但是并不负责对Executor的资源分配。
  (2)Worker:Spark的工作节点。在YARN部署模式下实际由NodeManager替代。
  (3)Executor:执行计算任务的一线组件。主要负责任务的执行及与Worker、Driver的信息同步。
  (4)Driver:Application的驱动程序,Application通过Driver与Cluster Manager、Executor进行通信。Driver可以运行在Application中,也可以由Application提交给ClusterManager并由Cluster Manager安排Worker运行。
  (5)Application:用户使用Spark提供的API编写的应用程序,Application通过Spark API将进行RDD的转换和DAG的构建,并通过Driver将Application注册到Cluster Manager。Cluster Manager将会根据Application的资源需求,通过一级分配将Executor、内存、CPU等资源分配给Application。Driver通过二级分配将Executor等资源分配给每一个任务,Application最后通过Driver告诉Executor运行任务。
posted @   爱吃麻辣烫呀  阅读(156)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示