spark2

news2025/1/16 15:48:41

18Spark中stage的划分 和 shuffle的概念

        Stage的划分是根据宽依赖,当触发action算子时,按照从后往前的回溯算法,当遇到会发生shuffle算子的时候,就会切分stage
        Stage的划分本质shuffle,即当遇到会发生shuffle算子的时候划分Stage

 

        Shufle又称洗牌,即将相同key按照一定的分配策略划分到同一个task中进行计算。当不同的节点上存在相同key的时候,这里会发生网络IO传输
        在大数据各种计算引擎技术中,一般都会遵循“移动数据不同移动计算”的原则。所以尽量减少shuffle的发生,因为会涉及到网络传输、序列和反序列等耗时操作,降低处理效率。

1、Spark的Shuffle借鉴了MapReduce的Shuffle
2、Spark的Shuffle过程是:上一个Stage的线程将处理的结果保存到磁盘上,由下一个Stage的线程来读取
3、由于Spark的Shuffle过程有磁盘IO操作,会影响Spark的处理速度

 

1、DAG基于宽依赖(Shuflle)被划分为多个State(阶段)
2、每个Stage阶段内部为窄依赖,可以组成PipLine
3、一个PipLine可以由一个Task所处理(一个线程),即每条PipLine的处理均是各自的线程处理,即内存中完成了PipLine的迭代
4、当第一个stage结束时,该stage的线程将会被释放,下一个stage重新开辟新的线程来处理。(数量经过处理后,大量减少,可以减小线程(分区))

19.RDD中数据的存储位置 和 特性

        RDD中的数据在数据源RDD只是一个抽象的数据集,我们通过对RDD的操作就相当于对数据进行操作

        RDD是Spark中最基本的数据抽象,是一个弹性分布式数据集,全称是Resilient Distributed DataSet。

     

          特性:分区,不可变,并行操作。

        1)RDD是由一系列partition组成,textFile底层调用的是MR 读取HDFS上的数据的方法。

                                        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​  

        
        2)函数作用在每一个partition (split) 上(RDD调用算子本质RDD的每个分区调用算子


        3)RDD之间有一系列的依赖关系 (容错机制)每个RDD都会保存其他RDD之间依赖关系:血缘关系。

1、每一个RDD都会记录该RDD的血缘关系(知道它是怎么来的,它的上一级是什么)
2、每次要获取一个RDD时,必须根据学院关系,从头开始执行


        4)可选的,如果是二元组【KV】类型的RDD,在Shuffle过程中可以自定义分区器。


        5)RDD提供一系列最佳的计算位置。

1、Driver在分配每个TaskExecutor时,会看看哪个Executor所在主机的数据哪个Task最近,就会优先分配。

20.对RDD进行cache操作后,数据存储位置

        数据在第一次执行cache算子时会被加载到各个Executor(真正计算的地方)进程的内存中,第二次就会直接从内存中读取而不会读取磁盘

     

 21.引起shuffle的算子分类

        1)大部分含有byKey的算子都会发生shuffle,如reduceByKey、groupByKey、sortByKey,combineByKey 等
        2)重分区类的算子:如repartition (其底层调用的是coalesce(shuffle=true)),coalesce等
        3) join类的算子:比如join、cogroup等
        4)去重类算子,如distinct

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

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

相关文章

E. Sergey and Subway(思维 + dp)

Problem - E - Codeforces Sergey Semyonovich 是 N 市县的市长,他一直在思考如何进一步改善 Nkers 的生活。不幸的是,几乎所有可以做的事情都已经完成了,白天他已经没有更多的想法(他现在喜欢在晚上睡觉)。然而&#…

MySQL 中的 distinct 和 group by 的区别

目录 distinct用法distinct多列去重 group by的使用单列去重多列去重 distinct和group by原理隐式排序基于上述原因,Mysql在8.0时,对此进行了优化更新: 结论推荐group by的原因 在语义相同,有索引的情况下:group by和d…

体验 Whisper

体验 Whisper 1. 什么是 Whisper2. Github 地址3. 创建虚拟环境4. 安装 ffmpeg5. 部署 Whisper6. 使用 Whisper 1. 什么是 Whisper Whisper 是一个通用的语音识别模型。它是在一个大型的不同音频数据集上训练出来的,也是一个多任务模型,可以进行多语言语…

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

MySQL设计范式、基础概念、数据库定义语言DDL MySQL设计范式、基础概念、数据库定义语言DDL MySQL设计范式、基础概念、数据库定义语言DDL数据模型属性的特点 数据库的创建主键 数据库设计规范第一范式(1NF)第二范式(2NF)第三范式…

智能制造之路-从MES到MOM

当前,中国正在大力推动制造业的转型升级,实现由传统制造向智能制造转型。而制造信息化系统,作为支撑企业实现智能制造的一个关键因素,也正越来越多的吸引企业领导人的关注。 某大型制造业集团企业(下文简称M集团&…

【Java虚拟机】JVM日志分析和可视化工具实操

1.JVM垃圾GC日志参数配置实战 Java虚拟机中垃圾收集器在运行过程中输出的日志信息主要用于分析垃圾收集器的运行状态、优化垃圾收集器的工作效率以及定位垃圾收集相关的问题GC日志会包含以下内容 垃圾收集器的名称和版本信息。垃圾收集器的运行时间、开始时间和结束时间。垃圾…

【Fluent】利用TUI命令在保存或导出文件时,给文件名加上时间步长、流动时间、迭代步数等求解过程变量的自动编码

一、问题背景 在CSDN的一篇博客(从Fluent导出数据到txt文档)中,一位博主分享了一串导出求解数据的TUI命令。 file/export/ascii data%t.txt () yes h2s y-velocity x-velocity q no 当时我不知道里面的%t是啥意思,估计是跟时间…

JMeter介绍与安装教程

简介 JMeter是一款开源的负载测试工具,它可以用于测试Web应用程序、API、数据库、负载均衡器等。JMeter 是由 Apache 软件基金会开发的,其目标是提供一个高性能、易于使用的负载测试工具。 JMeter 具有以下特点: 可扩展性:JMet…

又开发好一个系统,详细记录软著申请过程

经过几个通宵达旦的撸代码之后,又开发好了一个系统,和以往一样,系统开发好了少不了申请软件著作权证书,兄弟们,软著申请搞起来啊。 在版权保护中心后台提交资料,没有账号的需要先注册一个账号。很重要的一步…

停车场收费系统

1.系统的开发工具 1.1 AppServe集成应用 Mysql:MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Mi…

【网络技术】什么是CIDR

序言 世界上最幸福的事之一,莫过于经过一番努力后,所有东西正慢慢变成你想要的样子。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记一级论点蓝色:用来标记二级论点 1 基础介…

【设计模式】单例模式(懒汉和饿汉模式详解)

目录 1.设计模式是什么? 2.单例模式 1.概念: 2.如何设计一个单例 1.口头约定(不靠谱) 2.使用编程语言的特性来处理 3.使用"饿汉模式"设计单例 1.详细步骤 2.完整代码 4.使用"饿汉模式"设计单例 1.详…

php+vue在线课程教育学习考试系统864t7

运行环境:phpstudy/wamp/xammp等 开发语言:php 后端框架:Thinkphp5 前端框架:vue.js 服务器:apache 数据库:mysql 数据库工具:Navicat/phpmyadmin功能要求:可以实现首页、个人中心、学生管理、名…

嵌入式软考备考_7 系统开发过程和项目管理

系统开发过程和项目管理 开发模型 把开发过程分成一些阶段。 瀑布模型:SDLC。缺陷在于最开始需求要明确,但是开发周期很难不变动。 因此改进: 原型:一个demo。 快速原型模型:抛弃模型,一旦获取到了用户需…

unity 基本寻径

一、实现效果:敌人追逐玩家,自动躲避障碍物 二、游戏框架 Plane:平面,是玩家和敌人可以行走的区域 Player:玩家,可以在平面上移动,绕开障碍物 Enemy:敌人,可以追逐玩家…

红外遥控且自动避障的嵌入式智能小车系统

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 本次实验使用树莓派作为开发平台,AlphaBot 作为开发载体,Python 作为开发语言,开发一种基于红外线遥控控制的、可自动避障的嵌入式智能小车系统。 智能系统中的嵌入式应用 实验目的 嵌入式…

MySQL双写缓冲区(Doublewrite Buffer)

本文已收录至Github,推荐阅读 👉 Java随想录 文章目录 摘要为什么需要Doublewrite BufferDoublewrite Buffer原理Doublewrite Buffer相关参数总结 摘要 InnoDB是MySQL中一种常用的事务性存储引擎,它具有很多优秀的特性。其中,Dou…

pip的常用操作命令

1. 忽略已安装的库(以llvmlite为例) pip install xxx --ignore-installed llvmlite 2. 错误 - AttributeError: int object has no attribute endswith 解决方案: 常见原因因为使用的pip为pip2,可以使用 pip -V 查看pip版本&a…

springboot+vue校园博客系统(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的校园博客系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风歌&a…

AD 域环镜 本地管理员密码解决方案(LAPS)部署

前言: 我们知道window10装好后,默认本地管理员账号Administrator是关闭的,通过组策略启用本地管理员账号没有问题,具体方法在下面,但是由于微软《MS14-025:组策略首选项中的漏洞可能允许特权提升&#xff…