Spark最后一课

news2024/9/25 23:23:54

1.Spark的提交过程(YarnCluster)

1.命令输入脚本启动,启动submit任务
在这里插入图片描述
2.解析参数
看是cluster还是yarn单点模式

3.创建客户端YarnClusterApplication
4.封装提交命令交给RM
5.RM在NM上启动ApplicationMaster(AM) 注意AM消耗的资源都是container的
6.AM根据参数启动Driver并且初始化SparkContext
7.Driver向RM申请资源,(YarnRM Client)
8.RM返回资源可用列表
9.Driver调用资源,找到空闲的NM,进行Executor注册,然后进行任务的切分和分配.
10.Executor 启动线程池,根据优先算法依次启动task线程.

在这里插入图片描述

2.任务的调度

如果是Client模式,则Driver就是本机了,Executor 会直接交互本机,远程访问提交,不能停止,同时所有Executor会交互本机,而本机资源不足,会导致系统和网络崩溃.
根据宽依赖进行Stage划分,根据分区做Task划分在这里插入图片描述
关于本地化调度
其实就是由近到远,依次尝试
如何由近到远?按照等级进行尝试,从高等级到低等级,降级机制.如何避免多次访问通一个节点? 黑名单机制

在这里插入图片描述
同一个进程-同一个节点->同一个机架->无所谓->任意地方,不在一个机架

3. Shuffle的原理

在这里插入图片描述
在这里插入图片描述

1. shuffle为什么那么慢?

因为shuffle要进行排序聚合操作,而且还要落盘

2.针对问题,如何优化?

  1. 针对排序聚合操作 在shuffle之前进行提前聚合,减少shuffle聚合的数据量,达到加速
  2. 落盘操作 增大缓冲区大小和溢出占比,减少溢写次数.
  3. 直接不排序

3.1 HashShuffle

一个task的一个分区一个文件
在这里插入图片描述

3.2HashShuffle的第二版流程

一个核按分区数划分文件数
在这里插入图片描述

3.3 SortShuffle

全部写入到一个文件中,保证文件内容有序,同时,使用稀疏索引来确定数据的位置
在这里插入图片描述

3.4bypassShuffle

对比3.3直接忽略排序
要求

  • 当reducetask数量小于等于200才能使用
  • 不是聚合类的shuffle(reduceByKey) groupby可以
    通过hash不进行排序,存入

4.内存

堆内内存: JVM管理的内存
堆外内存: 操作系统管理的内存

JVM默认站 1/64 最大 1/4 超出则内存溢出

1.JVM三大块:

堆:存储程序运行时构建的对象(引用)
栈: 存储方法执行的内容(压栈,栈帧), 与JAVA的栈一致
方法区: 存储类的全部信息

2.关于堆的考虑

根据存活时长存储在不同的
新生代:
老年代
轻量级 Minor GC 对应新生代
重量级 Major GC 对应老年代

当新生代满了后,触发Minor GC,按时间排序,将旧对象放入老年代
老年代满了之后,触发Major GC,如果还不能解决问题,就出现堆内存溢出

3.Spark的内存分块

Storange 存储 广播变量
Execution 执行 shuffle sort
Other 其他 元数据 SparkContest 框架中的类对象

Yarn是将资源分配给节点(Driver,Executor),然后每个节点中资源的调配,就是由Spark自己决定

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

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

相关文章

使用Burp Suite进行Web应用渗透测试

使用Burp Suite进行Web应用渗透测试是一种常见的方法,可以帮助发现Web应用程序中的安全漏洞和弱点。 步骤: 准备工作: 首先,确保已经安装了Burp Suite,并配置浏览器以使用Burp Suite作为代理。 配置代理:…

Nvidia Jetson 编解码开发(7)Jetpack 4.x版本Multimedia API 硬件编码开发--输出端对接ROS publish

1.前言 Nvidia Jetson 编解码开发(6)Jetpack 4.x版本Multimedia API 硬件编码开发--输入端对接Camera V4L2采集_free-xx的博客-CSDN博客 基于上篇基于开发 需求: (1)2路Camera采集 + H265编码 (2)2路编码完的H265数据通过ROS 发布出去,上位机播放 2. 开发记录 2…

centos7根目录扩容

centos7根目录扩容 具体操作步骤欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如…

C++技能系列 - 编码规范(Google C++编程风格指南)

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 编码规范(Google C Style Guide) 编码规范(Google C Style Guide&am…

【每日一题】1267. 统计参与通信的服务器

【每日一题】1267. 统计参与通信的服务器 1267. 统计参与通信的服务器题目描述解题思路 1267. 统计参与通信的服务器 题目描述 这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有…

MyBatis与Spring的集成整合加优化分页功能

目录 一.为什么要将MyBatis和Spring整合??? 二.配置环境 2.1 pom文件 2.2 xml文件 三.演示举例 四.Aop整合pageHelper 分页插件 今天的分享就到这啦!!! 一.为什么要将MyBatis和Spring整合&#xff1f…

超声波创始人杨子超:AI Agents崛起

2023年7月23日,超声波俱乐部AI Open Day在北京举办,百位AI领域顶级创业者、知名投资人汇聚一堂。超声波创始人杨子超进行了一场精彩的分享,以下为杨子超的分享整理: 分享嘉宾:杨子超 超声波创始人分享主题:…

Gradle 如何配置全局 mavenCentral()

我们都知道 Gradle 会使用 Maven 的中央仓库。 在 Gradle 的配置文件中,通常有一个 mavenCentral() 如果我们想把 mavenCentral() 的仓库地址全局替换掉别的仓库地址的话。 我们可以在 C:\Users\yhu\.gradle 目录下创建一个 init.gradle 文件。 文件中的代码为&a…

mq与mqtt的关系

文章目录 mqtt 与 mq的区别mqtt 与 mq的详细区别传统消息队列RocketMQ和微消息队列MQTT对比:MQ与RPC的区别 mqtt 与 mq的区别 mqtt:一种通信协议,规范 MQ:一种通信通道(方式),也叫消息队列 MQ…

Cauchy’s integral formula

见:https://math.mit.edu/~jorloff/18.04/notes/topic4.pdf

基于Java的旅游信息推荐系统设计与实现,springboot+vue,MySQL数据库,前后端分离,完美运行,有三万字论文。

基于Java的旅游信息推荐系统设计与实现,springbootvue,MySQL数据库,前后端分离,完美运行,有三万字论文。 前台主要功能:登录注册、旅游新闻、景区信息、美食信息、旅游线路、现在留言、收藏、预定旅游线路…

力扣数组类题目--41缺失的第一个正数

41 缺失的第一个正数 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 示例 2: 输入&a…

词向量及文本向量

文章目录 引言1. 文本向量化2. one-hot编码3. 词向量-word2vec3.1 词向量-基于语言模型 4 词向量 - word2vec基于窗口4.1 词向量-如何训练 5. Huffman树6. 负采样-negative sampling7. Glove基于共现矩阵7.1 Glove词向量7.2 Glove对比word2vec 8. 词向量训练总结9. 词向量应用9…

Docker安装与部署java项目

文章目录 Docker安装与部署java项目 用的宝塔服务器查看容器命令部署 java 项目这是别人用的 用这个要保证 自己docker 有 jdk1.8这个是我自己的 宝塔安装的 jdk1.8 注意 需要把 jshepr 替换成自己的 jar 名字 要小写下面命令有关于 jshepr 都要改成 上面写地自己的jar3&#x…

优质内容竞争时代,爱奇艺踏进「质变」进行时

作者 | 方怡 来源 | 洞见新研社 各大企业半年报接连发布的热闹关头,爱奇艺给出了意料之中的喜人成绩。 财报显示,今年二季度,爱奇艺总营收为78亿元,同比增长17%。其中,包括会员服务、广告收入、内容发行和其他收入在…

Nuxt 菜鸟入门学习笔记三:视图

文章目录 入口文件组件 Components页面 Pages布局 Layouts Nuxt 官网地址: https://nuxt.com/ Nuxt 提供多个组件层来实现应用程序的用户界面。 入口文件 App.vue组件 Components页面 Pages布局 Layouts 下面逐一进行介绍。 入口文件 默认情况下,Nu…

「MySQL-00」MySQL在Linux上的安装、登录与删除

目录 一、安装MySQL 0. 安装前请先执行一遍删除操作,把预装或残留的MySQL删除掉 1. 安装yum源 (解决了在哪里找MySQL的问题) 2. 安装哪个版本的MySQL 二、启动和登录MySQL 三、删除MySQL / MariaDB 安装与卸载前,建议先将用户切换…

21-JQuery

JQuery 1 JQuery基础 1.1 概念 Jquery是一个第三方的JavaScript函数库,里面包含了大量写好的函数,可以让开发人员更快捷的操作dom。JQuery目前版本是4.x,国内一般用的是3.5.11.2 使用 在页面中引入jquery文件,即可使用jquery的语法 <script src="https://code.jqu…

漏洞利用和权限提升

使用Kali Linux进行漏洞利用和权限提升是渗透测试过程中的一部分&#xff0c;用于评估系统的安全性。 漏洞利用&#xff1a; 选择目标&#xff1a; 首先&#xff0c;确定 要进行漏洞利用的目标系统。这可能是一个具有已知漏洞的应用程序、服务或操作系统。 收集信息&#xff…

光伏+旅游景区

传统化石燃料可开发量逐渐减少&#xff0c;并且对环境造成的危害日益突出。全世界都把目光投向了可再生能源&#xff0c;希望可再生能源能够改变人类的能源结构。丰富的太阳能取之不尽、用之不竭&#xff0c;同时对环境没有影响&#xff0c;光伏发电是近些年来发展最快&#xf…