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 的工作与架构原理就介绍至此,如有问题,欢迎评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/128096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么重写 redisTemplate

为什么重写 redisTemplate 1.安装 redis 上传 redis 的安装包tar -xvf redis-5.0.7.tar.gzyum -y install gcc-cmakemake PREFIX/soft/redis installcd /soft/redis/bin./redis-server redis.conf 2. 集成 redisTemplate maven 依赖 <dependency><groupId>org…

全国产EtherCAT运动控制边缘控制器(六):RtBasic文件下载与连续轨迹加工的Python+Qt开发

今天&#xff0c;正运动小助手给大家分享一下全国产EtherCAT运动控制边缘控制器ZMC432H如何使用PythonQT实现连续轨迹加工。 01 功能简介 全国产EtherCAT运动控制边缘控制器ZMC432H是正运动的一款软硬件全国产自主可控&#xff0c;运动控制接口兼容EtherCAT总线和脉冲型的独立…

【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件

文章目录 1.MenuStrip2.ContextMenuStrip3.ToolStrip4.StatusStrip 1.MenuStrip MenuStrip作为一个容器可以包含多个菜单项。MenuStrip 的重要属性包括&#xff1a; Name&#xff1a;菜单的名字Dock&#xff1a;菜单的停靠位置Items&#xff1a;菜单项的集合 ToolStripMenuI…

华为云服务器,在线安装MySQL

需求 在华为云服务器上&#xff0c;部署MySQL数据库&#xff0c;通过 公网IP 访问数据库。 通过 yum &#xff0c;在线安装MySQL&#xff1b;配置远程连接&#xff0c;开放3306端口&#xff0c;能够通过公网访问。 云服务器配置说明 本文所使用的 华为云服务器 配置如下。 …

C++进阶语法——STL 标准模板库(上)(Standard Template Library)【学习笔记(六)】

文章目录 STL 标准模板库1、 STL简介2、STL容器的类别3、STL迭代器的类别4、STL算法的类别5、泛型编程&#xff08;generic programming&#xff09;6、C模板&#xff08;template&#xff09;6.1 函数模板&#xff08;function template&#xff09;6.2 类模板&#xff08;cla…

20231102从头开始配置cv180zb的编译环境(欢迎入坑,肯定还有很多问题等着你)

20231102从头开始配置cv180zb的编译环境&#xff08;欢迎入坑&#xff0c;肯定还有很多问题等着你&#xff09; 2023/11/2 11:31 &#xff08;欢迎入坑&#xff0c;本篇只是针对官方的文档整理的&#xff01;只装这些东西你肯定编译不过的&#xff0c;还有很多问题等着你呢&…

3.字符集和比较规则简介

3.字符集和比较规则简介 1.字符集和比较规则简介1.1 字符集简介1.2 比较规则简介1.3 一些重要的比较规则 2. MySQL 中支持的字符集和比较规则2.1 MySQL 的 utf8 和 utf8mb42.2 字符集查看2.3 比较规则查看 3. 字符集和比较规则的应用3.1 各级别的字符集和比较规则1. 服务器级别…

AR眼镜定制开发-智能眼镜的主板硬件、软件

AR眼镜定制开发是一项复杂而又重要的工作&#xff0c;它需要准备相关的硬件设备和软件。这些设备包括多个传感器、显示装置和处理器等。传感器用于捕捉用户的动作和环境信息&#xff0c;如摄像头、陀螺仪、加速度计等;显示装置则用于将虚拟信息呈现给用户;处理器用于处理和协调…

京东科技埋点数据治理和平台建设实践 | 京东云技术团队

导读 本文核心内容聚焦为什么要埋点治理、埋点治理的方法论和实践、奇点一站式埋点管理平台的建设和创新功能。读者可以从全局角度深入了解埋点、埋点治理的整体思路和实践方法&#xff0c;落地的埋点工具和创新功能都有较高的实用参考价值。遵循埋点治理的方法论&#xff0c;…

Web - Servlet详解

目录 前言 一 . Servlet简介 1.1 动态资源和静态资源 1.2 Servlet简介 二 . Servlet开发流程 2.1 目标 2.2 开发过程 三 . Servlet注解方式配置 ​编辑 四 . servlet生命周期 4.1 生命周期简介 4.2 生命周期测试 4.3 生命周期总结 五 . servlet继承结构 5.1 ser…

Content-Type 值有哪些?

1、application/x-www-form-urlencoded 最常见 POST 提交数据的方式。 浏览器的原生 form 表单&#xff0c;如果不设置 enctype 属性&#xff0c;那么最终就会以 application/x-www-form-urlencoded 方式提交数据。 <form action"http://www.haha/ads/sds?name小草莓…

Jmeter调用测试片段 —— 模块控制器

可以使用模块控制器调用测试片段。模块控制器提供了一种在运行时将测试片段替换为当前测试计划的机制。测试片段可以位于任何线程组中。 1、打开一个Jmeter窗口&#xff0c;添加好线程组、用户定义变量、模块控制器、测试片段、察看结果树。 2、用户定义变量同样定义好访问ip及…

NI-9236 国产化10 kS/s/ch,350 Ω四分之一桥应变计,8通道C系列应变/桥输入模块

10 kS/s/ch&#xff0c;350 Ω四分之一桥应变计&#xff0c;8通道C系列应变/桥输入模块 NI‑9236可同步测量所有通道的动态应变&#xff0c;从而实现了高速同步测量。 该功能对于需要在特定时刻对多个通道进行比较的应用&#xff08;例如冲击测试&#xff09;非常重要。\n\nNI…

SSM校园设备管信息管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

选题理由 随着计算机网络及多媒体技术的广泛应用&#xff0c;互联网已成为高校办学的基础设施和必备条件&#xff0c;基于互联网的高校信息管理越来越综合化&#xff0c;越来越多的教学管理、行政管理工作将架构在互联网上&#xff0c;互联网正在变为学校实施教学、科研和管理…

arcgispro中机器学习部分

参考链接 arcgis.learn 模块 |ArcGIS API for Python arcgis包位置 安装路径\GeoScene\Pro\bin\Python\envs\arcgispro-py3\Lib\site-package\arcgis 以automl进行训练工具为例&#xff0c;工具导入模块中涉及机器学习的模块 该模块所在位置 安装路径\GeoScene\Pro\bin\Py…

Flask路由机制分析之二

一、前言 上篇 《Flask 路由机制分析之一》主要讲了Python函数的特性以及装饰器的基本概念&#xff0c;这节我们具体分析一下路由内部机制&#xff0c;Flask路由依赖于werkzegu的routing模块来实现。 二、werkzegu的routing模块介绍 Werkzegu库的routing模块主要功能在于URL…

Selenium学习(Java + Edge)

Selenium /səˈliːniəm/ 1. 简介 ​ Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Safari、Google Chrome、Opera、Edge等。 ​ 适用于自动化测试&#x…

Zabbix监控原理 安装

一、监控介绍 1、监控目的 监控是需要站在公司的业务角度去考虑&#xff0c;而不是针对某个监控技术的使用 对系统不间断时实监控 实际上是对系统不间断的时实监控 实时反馈系统当前状态 我们监控某个硬件、或者系统&#xff0c;都是需要能时实看到当前系统的状态&#x…

进程优先级(nice值,top指令),独立性,竞争性,进程切换(时间片),抢占与出让,并发并行概念

目录 优先级 引入 为什么会存在优先级 特点 优先级值 nice值 更改nice值 top指令 独立性 竞争性 进程切换 引入 时间片 上下文切换 调度器 抢占与出让 强占 出让 并发和并行 并发 并行 优先级 引入 与权限不同的是,权限是能不能做的问题,优先级是什…

前端BOM、DOM

文章目录 BOM操作window对象navigator对象&#xff08;了解即可&#xff09;history对象location对象弹出框警告框确认框提示框 计时相关1.过一段时间之后触发&#xff08;一次&#xff09;2.每隔三秒时间触发一次 DOM操作HTML DOM树 查找标签直接查找间接查找 节点操作操作 获…