首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
iostream
less
format
php7
integer
typescript
scala
cmd
settings
cSharp
function
loops
dockerfile
list
config
window
frameworks
flutter
cPlusPlus
command
byte
uml
hashtable
emoji
hashcode
jsp
datetime
shell
tree
audio
request
uri
require
hash
select
stream
keyword
install
chat
golang
replace
testing
merge
range
filter
substring
int
grid
export
php5
header
heap
actionscrip
ip
bytecode
runtime
spring
php
import
cookie
client
c语言
join
sum
express
dll
bash
rsa
nodejs
md5
go
buffer
string
javascript
email
utf-8
solr
random
timestamp
当前位置:
开发笔记
>
编程语言
> 正文
Spark(三):Spark运行架构
作者:不得不无奈啊 | 来源:互联网 | 2023-08-13 09:17
文章目录Spark运行架构核心组件核心概念Spark运行架构Spark框架的核心是一个计算引擎,整体来说,它采用了标准master-slave的结构。
文章目录
Spark运行架构
核心组件
核心概念
Spark运行架构
Spark 框架的核心是一个计算引擎,整体来说,它采用了标准master-slave的结构。
核心组件
Driver:Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行工作。
将用户程序转化为作业(job)
在 Executor 之间调度任务(task)
跟踪 Executor 的执行情况
通过 UI 展示查询运行情况
Executor:Spark Executor 是集群中工作节点(Worker)中的一个 JVM 进程,负责在 Spark 作业中运行具体任务(Task),任务彼此之间相互独立。Spark 应用启动时,Executor 节点被同时启动,并且始终伴随着整个 Spark 应用的生命周期而存在。如果有 Executor 节点发生了故障或崩溃,Spark 应用也可以继续执行,会将出错节点上的任务调度到其他 Executor 节点上继续运行。
负责运行组成 Spark 应用的任务,并将结果返回给驱动器进程
它们通过自身的块管理器(Block Manager)为用户程序中要求缓存的 RDD 提供内存式存储。RDD 是直接缓存在 Executor 进程内的,因此任务可以在运行时充分利用缓存数据加速运算。
Master & Worker:Spark 集群的独立部署环境中,不需要依赖其他的资源调度框架,自身就实现了资源调度的功能,所以环境中还有其他两个核心组件:Master 和 Worker,这里的 Master 是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责,类似于 Yarn 环境中的 RM, 而
Worker 呢,也是进程,一个 Worker 运行在集群中的一台服务器上,由 Master 分配资源对数据进行并行的处理和计算,类似于 Yarn 环境中 NM。
ApplicationMaster:Hadoop 用户向 YARN 集群提交应用程序时,提交程序中应该包含ApplicationMaster,用于向资源调度器申请执行任务的资源容器 Container,运行用户自己的程序任务 job,监控整个任务的执行,跟踪整个任务的状态,处理任务失败等异常情况。说的简单点就是,ResourceManager(资源)和 Driver(计算)之间的解耦合靠的就是ApplicationMaster。
核心概念
Executor 与 Core:
SparkExecutor 是 集群种运行在工作节点中的一个JVM进程,是整个集群中专门用于计算的节点。在提交应用中,可以提供参数指定计算节点的个数,以及对应的资源。这里的资源一般指的是工作节点Executor 的 内存大小和使用的虚拟CPU核数量。
并行度:
在分布式计算框架中一般都是多个任务同时执行,由于任务分布在不同的计算节点进行计算,所以能够真正地实现多任务并行执行,这里我们将整个集群并行执行任务地数量称之为并行度。那么一个作业到底并行度是多少呢?这个取决于框架的默认配置。应用程序也可以在运行过程中动态修改。
有向无环图:
这里额有向无环图指的是,程序的运行可以依赖,也就是可以有下一步,但是不能称为一个环形,这样就会形成一个死循环。
提交流程:
所谓提交流程,其实就是开发人员根据需求写的应用程序通过Spark客户端提交给Spark运行环境执行计算的流程。在不同的部署环境中,这个提交过程基本相同,但是又有细微的区别,我们这里不进行详细的比较,但是因为国内工作中,将spark引用部署到Yarn环境中会更多一些,所以本课程中的提交流程是基于Yarn环境的。
Spark 应用程序提交到 Yarn 环境中执行的时候,一般会有两种部署执行的方式:Client 和 Cluster。两种模式主要区别在于:Driver 程序的运行节点位置。
Yarn Client模式:Client 模式将用于监控和调度的 Driver 模块在客户端执行,而不是在 Yarn 中,所以一般用于测试。
Driver 在任务提交的本地机器上运行
Driver 启动后会和 ResourceManager 通讯申请启动 ApplicationMaster
ResourceManager 分配 container,在合适的 NodeManager 上启动 ApplicationMaster,负责向 ResourceManager 申请 Executor 内存
ResourceManager 接到 ApplicationMaster 的资源申请后会分配 container,然后ApplicationMaster 在资源分配指定的 NodeManager 上启动 Executor 进程Executor 进程启动后会向 Driver 反向注册,Executor 全部注册完成后 Driver 开始执行main 函数
之后执行到 Action 算子时,触发一个 Job,并根据宽依赖开始划分 stage,每个 stage 生成对应的 TaskSet,之后将 task 分发到各个 Executor 上执行。
Yarn Cluster 模式:Cluster 模式将用于监控和调度的 Driver 模块启动在 Yarn 集群资源中执行。一般应用于实际生产环境。
在 YARN Cluster 模式下,任务提交后会和 ResourceManager 通讯申请启动ApplicationMaster,
随后 ResourceManager 分配 container,在合适的 NodeManager 上启动 ApplicationMaster,此时的 ApplicationMaster 就是 Driver。
Driver 启动后向 ResourceManager 申请 Executor 内存,ResourceManager 接到ApplicationMaster 的资源申请后会分配 container,然后在合适的 NodeManager 上启动Executor 进程
Executor 进程启动后会向 Driver 反向注册,Executor 全部注册完成后 Driver 开始执行main 函数,
之后执行到 Action 算子时,触发一个 Job,并根据宽依赖开始划分 stage,每个 stage 生成对应的 TaskSet,之后将 task 分发到各个 Executor 上执行。
spark
架构
main
jvm
缓存
yarn
服务器
io
hadoop
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
容器
云原生应用最佳开发实践之十二原则(12factor)
目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ...
[详细]
蜡笔小新 2023-12-09 09:35:02
容器
Oracle优化新常态的五大禁止及其性能隐患
本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ...
[详细]
蜡笔小新 2023-12-12 12:55:55
容器
Kylin 单节点安装
软件环境Hadoop:2.7,3.1(sincev2.5)Hive:0.13-1.2.1HBase:1.1,2.0(sincev2.5)Spark(optional)2.3.0K ...
[详细]
蜡笔小新 2023-10-16 16:09:42
datetime
阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:4. 设备上报属性
阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ...
[详细]
蜡笔小新 2023-12-14 12:40:20
datetime
图解redis的持久化存储机制RDB和AOF的原理和优缺点
本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ...
[详细]
蜡笔小新 2023-12-13 20:24:11
list
计算机存储系统的层次结构及其优势
本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ...
[详细]
蜡笔小新 2023-12-13 17:32:41
list
一句话解决高并发的核心原则
本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ...
[详细]
蜡笔小新 2023-12-12 10:56:24
list
操作系统的定义和功能
本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ...
[详细]
蜡笔小新 2023-12-11 14:17:13
list
网卡工作原理及网络知识分享
本文介绍了网卡的工作原理,包括CSMA/CD、ARP欺骗等网络知识。网卡是负责整台计算机的网络通信,没有它,计算机将成为信息孤岛。文章通过一个对话的形式,生动形象地讲述了网卡的工作原理,并介绍了集线器Hub时代的网络构成。对于想学习网络知识的读者来说,本文是一篇不错的参考资料。 ...
[详细]
蜡笔小新 2023-12-11 12:01:41
list
开发笔记:软件测试知识点之数据库压力测试方法小结
篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ...
[详细]
蜡笔小新 2023-12-10 20:29:19
tree
ZooKeeper 学习
前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ...
[详细]
蜡笔小新 2023-10-17 17:07:40
tree
什么是大数据lambda架构
一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ...
[详细]
蜡笔小新 2023-10-17 16:06:09
tree
LVS-DR直接路由实现负载均衡示例
nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ...
[详细]
蜡笔小新 2023-10-17 10:27:04
shell
CentOS 7配置SSH远程访问及控制
nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ...
[详细]
蜡笔小新 2023-10-16 18:40:50
config
Hadoop学习笔记1:伪分布式环境搭建
在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下: 1、CentOS6.7下安装JDK,地址:http:b ...
[详细]
蜡笔小新 2023-10-16 16:04:04
不得不无奈啊
这个家伙很懒,什么也没留下!
Tags | 热门标签
iostream
less
format
php7
integer
typescript
scala
cmd
settings
cSharp
function
loops
dockerfile
list
config
window
frameworks
flutter
cPlusPlus
command
byte
uml
hashtable
emoji
hashcode
jsp
datetime
shell
tree
audio
RankList | 热门文章
1
微信web开发工具调试h5_5个Web开发工具可提高您的生产力
2
win10右键新建快捷方式没反应怎么解决
3
Android文字识别之tesseract的使用
4
spring3.1.1入门讲解二(注解篇)
5
np读取csv文件_[记录]Pytorch利用图片数据和csv标签文件建立Dataset
6
从NuGet包安装N2 - 下一步是什么? - N2 Installation from NuGet Packages - What's Next?
7
axios拦截器的介绍
8
计算机网络地址书写,计算机网络——IP编址、子网掩码和特殊的IP地址
9
WNM2030单N沟道20V0.95A功率MOSFET场效应晶体管WNM20303/TR
10
Plymouth文本模式启动画面修改
11
java wait 和await_java多线程中Object.wait()和Condition.await()是否会释放当前线程锁占有的锁...
12
Redis服务器设置密码后,使用service redis stop 会出现以下信息:Waiting for Redis to shutdown ......
13
ASP.NET 使用TTS 实现语音合成,生成的文件为零 如何解决?
14
svn打分支与分支合并回主干
15
mysql版本年代_MySQL之SQL基础
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有