当前位置: 首页 > news >正文

2.Spark的工作与架构原理

概述

目标:

  • spark的工作原理
  • spark数据处理通用流程
  • rdd
    • 什么是rdd
    • rdd 的特点
  • spark架构
    • spark架构相关进程
    • spark架构原理

spark的工作原理

spark 的工作原理,如下图
在这里插入图片描述

  • 图中中间部分是spark集群,也可以是基于 yarn 的,图上可以理解为sparkstandalone 集群,集群中有 6 个节点
  • 左边是spark的客户端节点,这个节点主要的任务是向spark集群提交任务,
  • 左边的 hdfs 是提交的任务所需要的数据源,当spark读取hdfs中的数据后,会将数据转化为rddrdd是弹性分布式数据集,是一个逻辑概念,在此,可以先理解为一个数据集合就可,这个rdd是具有分区特性的,如节点1节点2节点3,这样可以轻易的提高数据的并发处理能力
  • 接下来就可以对这rdd数据进行处理了,图中使用了,flatMap 函数,计算之后的结果还是一个带有分区的rdd,就是在节点4节点5节点6
  • 当处理到最后一步的时候是需要将数据存起来的,实际工作中,针对离线计算的,大部分的结果数据都是存储在hdfs上的,也可以存储在其它的存储介质中。

针对上面几条,可以总结出,spark处理数据的基本构成,如下图
在这里插入图片描述

后面 spark 代码中基本都是这三板斧

rdd

rddspark 中一个很重要的概念

什么是rdd

在实际工作中,rdd 通常通过 hadoop 上的文件,即 hdfs 文件进行创建,也可以通过程序中的集合来创建,rddspark 提供的核心抽象,全称为 Resillient Distributed Dataset ,即弹性分布式数据集

rdd 的特点

  1. 弹性:rdd 数据默认情况下是存储在内存中,但是在内存资源不足时,spark 也会自动将 rdd 数据写入磁盘
  2. 分布式: rdd 在抽象上来说是一种元素集合,它是被分区的,每个分区分布在集群中的不同节点上,从而让 rdd 中的数据可以被并行操作
  3. 容错性: rdd 最重要的特性就是提供了容错性,可以自动从节点失败中恢复过来,如果某个节点上的 rdd 分区,因为节点故障了,导致数据丢了,那么 rdd 会自动通过自己的数据来源重新计算该分区的数据

spark架构

下面熟悉一下 spark 架构相关的进程信息
注意: 在此是以 sparkstandalone 集群为例进行分析,其实在 spark standalone环境安装 中,成功后有查询对应的 进程 是否成功启动了

spark架构相关进程

  1. driver:编写的 spark 程序就在driver(进程)上,由 driver 进程负责执行,driver 进程所在的节点可以是spark 集群的某一个节点,或者就是提交任务的客户端节点,具体driver进程在哪个节点上启动,是由提交任务时指定的参数决定的
  2. master:集群的主节点中启动的进程,主要负责集群资源管理和分配,还有集群的监控等。
  3. worker:集群的从节点中启动的进程,主要负责启动其它进程来执行具体的数据处理和计算任务
  4. executor:此进程由worker 负责启动,主要为了执行数据处理和计算
  5. taks:是一个线程,由executor 负责启动,是真正干活的

spark架构原理

如下图来看一spark的架构原理
在这里插入图片描述

  1. spark的客户端机器上通过driver进程执行的spark代码,通过spark-submit脚本提交spark任务的时候driver进程就启动了。
  2. driver 启动之后,会做一些初始化操作,并找到集群的master 进程,对spark 程序进行注册
  3. master 收到 spark 程序注册成功之后,会向 worker 节点发送请求,进行资源调试和分配
  4. worker 收到 master 请求后,为任务启动 executor 进程,启动多少个,会根据配置来启动
  5. executor 启动之后会向 driver 进行注册,这样 driver 就能知道哪些 executor 在为它服务了
  6. driver 会根据对 rdd 定义的操作,提交一堆的 task(map,flatMap等) 去 executor 上执行

结束

spark 的工作与架构原理就介绍至此,如有问题,欢迎评论区留言。

相关文章:

2.Spark的工作与架构原理

概述 目标: spark的工作原理spark数据处理通用流程rdd 什么是rddrdd 的特点 spark架构 spark架构相关进程spark架构原理 spark的工作原理 spark 的工作原理,如下图 图中中间部分是spark集群,也可以是基于 yarn 的,图上可以…...

qt-C++笔记之带有倒计数显示的按钮,计时期间按钮锁定

qt-C笔记之带有倒计数显示的按钮&#xff0c;计时期间按钮锁定 code review! 文章目录 qt-C笔记之带有倒计数显示的按钮&#xff0c;计时期间按钮锁定1.运行2.main.cc3.main.pro 1.运行 2.main.cc 代码 #include <QApplication> #include <QPushButton> #includ…...

HTML全局属性(global attribute)有哪些?

HTML全局属性是指在HTML元素上可用的基本属性&#xff0c;它们适用于所有HTML元素。以下是一些常见的HTML全局属性&#xff1a; 1&#xff1a;class&#xff1a;为元素指定一个或多个类名&#xff0c;用于与CSS样式表关联。 2&#xff1a;id&#xff1a;:为元素指定唯一的标识…...

MyBatis-Plus返回getOne返回null疑惑

getOne返回null 问题描述分析过程总结 问题描述 在数据库建了一张表主要包括两个字段master_id和slave_id;主要的额外字段max_lots 默认值是null&#xff1b; 当调用getOne进行查询结果是null&#xff0c;但实际情况是数据库时应该返回值的&#xff1b; AotfxMasterSlave ex…...

Physics2DPlugin3加载后会跳转gsap官网解决

因工作需要使用Physics2DPlugin3库&#xff0c;目标效果 加载他里面的在线js&#xff0c;使用效果正常&#xff0c;但是几秒会跳转官网&#xff0c;我们app内部、浏览器都会这样。 于是研究js代码&#xff0c;发现里面有setTimeout跳转。 删掉就好了 分享我改好的文件&#x…...

【AI视野·今日Sound 声学论文速览 第三十二期】Tue, 24 Oct 2023

AI视野今日CS.Sound 声学论文速览 Tue, 24 Oct 2023 Totally 20 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;nvas3d, 基于任意录音和室内3D信息合成重建不同听角&#xff08;位置&#xff09;处的新的声音。(from apple cmu) website: htt…...

在Linux上编译gdal3.1.2指南

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 以Ubuntu 18编译gdal3.1.2为例,编译gdal3.1.2需要先编译proj库和geos库(可选)。我选择的proj库版本为proj-7.1.0,编译proj-7.1.0需要先编译tiff库和sqlite3。我选择的sqlite3的版本为…...

73. 矩阵置零 --力扣 --JAVA

题目 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 解题思路 通过二层循环找出元素为0所在的行和列&#xff1b;设置标志位记录当前行是否存在元素为0的&#xff0c;设置列表存储列为0的列&#…...

(笔记)Kotlin——Android封装ViewBinding之二 优化

0. 在app模块的build.gradle文件中添加如下配置开启ViewBinding android {.......viewBinding {enabled true}} 1. 新建一个Ext.kt文件 添加两个扩展函数&#xff0c;分别对应Activity和Fragment inline fun <T : ViewBinding> AppCompatActivity.viewBinding(cross…...

MATLAB算法实战应用案例精讲-【图像处理】机器视觉(基础篇)(八)

目录 前言 几个高频面试题目 机器视觉如何获取到好图像 常见的视觉光源 各种视觉打光方式...

由k8s升级慢引起的etcd性能不足的问题排查

一、基本介绍 最近etcd查看出现性能 curl --cacert /path/to/etcdctl-ca.crt --cert /path/to/etcdctl.crt --key /path/to/etcdctl.key https://:2379/metrics | grep etcd_disk_wal_fsync_duration_seconds_bucket 当集群规模突破过大时规模时,曾出现如下性能瓶颈问题: etc…...

如何构建用于Skydel GNSS模拟仿真的SNMP代理方式?

使用Skydel API构建测试方案 凭借其现代、强大且直观的API&#xff0c;德思特Safran GNSS模拟引擎Skydel免费提供了Python、C#、C和Labview的开源客户端库&#xff0c;它具有600多条命令&#xff0c;并且有完善的文档与记录。 随着Skydel软件更新添加新功能&#xff0c;API得…...

vue2+ant-design-vue a-form-model组件二次封装(form表单组件)FormModel 表单

一、效果图 二、参数配置 1、代码示例 <t-antd-form:ref-obj.sync"formOpts.ref":formOpts"formOpts":widthSize"1":labelCol"{ span:2}":wrapperCol"{ span:22}"handleEvent"handleEvent" />2. 配置参数…...

对比解析php和go对JSON处理的区别

一、go 转化php数组代码 php程序 $str <<<EOF {"操作源":"任意","数据库":"任意","语句类型":"CREATE DATABASE&#xff1b;DROP DATABASE&#xff1b;ALTER DATABASE","影响行数":"不…...

HTTP和HTTPS本质区别——SSL证书

HTTP和HTTPS是两种广泛使用的协议&#xff0c;尽管它们看起来很相似&#xff0c;但是它们在网站数据传输的安全性上有着本质上的区别。 HTTP是明文传输协议&#xff0c;意味着通过HTTP发送的数据是未经加密的&#xff0c;容易受到拦截、窃听和篡改的风险。而HTTPS通过使用SSL或…...

JS 防抖和节流

防抖&#xff08;debounce&#xff09;和节流&#xff08;throttle&#xff09;是JavaScript中常用的性能优化技术&#xff0c;用于限制某些高频率触发的函数执行次数&#xff0c;减少不必要的计算和网络请求。下面分别介绍防抖和节流的实现方式。 防抖&#xff08;Debounce&am…...

Django开发实例总结(入门级、4.2.6、详细)

目录 概述 Django的核心组件包括 Django的项目结构 创建工程&#xff08;4.2.6&#xff09; 实例一&#xff1a;Hello world 实例二&#xff1a;访问一个自定义主页 实例三&#xff1a;通过登录跳转到主页 实例四&#xff1a;主页添加静态文件&#xff0c;包含js、css、…...

Variations-of-SFANet-for-Crowd-Counting可视化代码

前文对Variations-of-SFANet-for-Crowd-Counting做了一点基础梳理&#xff0c;链接如下&#xff1a;Variations-of-SFANet-for-Crowd-Counting记录-CSDN博客 本次对其中两个可视化代码进行梳理 1.Visualization_ShanghaiTech.ipynb 不太习惯用jupyter notebook, 这里改成了p…...

所有的人机交互都存在不匹配现象

从接受理论的角度来看&#xff0c;就像夫妻一样&#xff0c;所有的人机交互都存在不匹配的现象。 接受理论是一个解释人们如何学习和接受信息的心理模型。该理论认为&#xff0c;当人们学习新信息时&#xff0c;他们会将其与自己已有的知识和经验联系起来&#xff0c;以便更好地…...

LED数码管的静态显示与动态显示(Keil+Proteus)

前言 就是今天看了一下书上的单片机实验&#xff0c;发现很多的器件在Proteus中都不知道怎么去查找&#xff0c;然后想做一下这个实验&#xff0c;尝试能不能实现&#xff0c;LED数码管的两个还可以实现&#xff0c;但是用LED点阵显示器的时候他那个网络标号不知道是什么情况&…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...