Spark简单回顾

news2024/10/6 6:00:58

在这里插入图片描述
                       星光下的赶路人star的个人主页

                      大鹏一日同风起,扶摇直上九万里

文章目录

  • 1、Spark
    • 1.1 Spark入门
      • 1.1.1 Spark部署模式
      • 1.1.2 常用端口
    • 1.2 SparkCore
      • 1.2.1 RDD不可变和五大属性
      • 1.2.2 RDD的弹性
      • 1.2.3 cache和Checkpoint的区别
      • 1.2.4 算子
    • 1.3 SparkSQL
    • 1.4 内核
      • 1.4.1提交流程(YarnCluster)
      • 1.4.2 SortShuffle

1、Spark

1.1 Spark入门

1.1.1 Spark部署模式

1、Standalone模式:spark自己管理资源
2、yarn模式:yarn来管资源
- Client模式:Driver(线程)在client里
- Cluster模式:Driver(线程)在AM里
3、mesos模式:国外用的
4、k8s模式:未来趋势

1.1.2 常用端口

4040 运行时端口
7070 内部通讯端口
18080 历史服务器

1.2 SparkCore

1.2.1 RDD不可变和五大属性

五大属性:分区、分区器、计算逻辑、最优位置、血缘关系。

1.2.2 RDD的弹性

储存:内存和磁盘·
容错:cache、persist
计算:重试
位置:task、数据不在一起

1.2.3 cache和Checkpoint的区别

cache:不会切断血缘
Checkpoint:会切断血缘

1.2.4 算子

1、单value
map
fliter
flatMap
mapPartition:一次处理一个分区的数据
groupBy
repartition:扩大分区,一定会shuffle
coalesce:减少分区:不一定会shuffle

2、双Value
union
zip
交集
差集

3、k-v
groupby:重分区,shuffle,不做聚合
ReduceBy:重分区,shuffle,做预聚合
sortbykey
大部分xxxbykey的算子会导致shuffle

4、行动算子
foreach
take
collect
Reduce
first

5、血缘关系
宽依赖:有shuffle,一对多:父rdd的一个分区发往子rdd多个分区
窄依赖:没有shuffle,一对一,父rdd的一个分区发往子rdd的一个分区

6、Application划分
Application:SparkContext的数量
job:行动算子的数量
stage:宽依赖的数量+1
task:一个stage中task的数量=最后一个rdd的分区数量

7、共享变量
广播变量
累加器

1.3 SparkSQL

1、数据抽象
rdd
DataFrame
DataSet
2、hive on spark vs spark on hive
hive on spark: 写 hivesql, 解析、编译、优化都是 hive的,只有执行是spark
spark on hive: 写sparksql,解析、编译、优化、执行都是spark的,只用到了hive的元数据

hive on spark的优点:图方便, hive on spark,写hivesql就行了,学习成本低,好维护

spark on hive的优点:更灵活, spark on hive,写sparksql,需要一定的spark代码功底

1.4 内核

1.4.1提交流程(YarnCluster)

在这里插入图片描述
1、先执行启动命令,然后会看到一个SparkSubmit进程,这个进程首先是解析参数、再创建YarnClusterApplication客户端,然后由客户端封装提交参数和命令,再向ResourceManager提交任务信息
2、由ResourceManager启动ApplicationMaster
3、AM根据参数,启动Driver线程并初始化SparkContext
4、向ResourceManager注册AM,申请资源
5、由ResourceManager向AM返回资源可用列表
6、启动launcherPool,利用RPC模块启动Executor
7、然后再向Driver注册Executor
8、Driver告知注册成功
9、创建Executor计算对象
10、再由Driver进行任务切分
11、再由Driver分配任务

1.4.2 SortShuffle

在这里插入图片描述
1、在该模式下,数据会先写入到一个数据结构,ReduceByKey写入Map,一边通过Map局部聚合,一边写入内存。Join算子写入ArrayList直接写入内存。然后需要判断是否达到阙值,如果达到就会将内存数据结构的数据写入到磁盘,清空内存数据结构。

2、在溢写磁盘时,先根据key进行排序,排序过后的数据,会分批写入到磁盘文件中,默认批次为10000条,数据会以此每批一万条写入到磁盘文件中。写入磁盘文件通过缓冲区溢写的方式,每次溢写都会产生一个磁盘文件,也就是每个task过程中会产生多个临时文件

3、最后在每个task中,将所有的临时文件合并,这就是merge过程,此过程将所有的临时文件读取出来,一次写入到最终文件。意味着一个task的所有数据都在这一个文件中。同时单独写一份索引文件,标识下游各个task的数据在文件中的索,start offset和end offset。

在这里插入图片描述
                      您的支持是我创作的无限动力

在这里插入图片描述
                      希望我能为您的未来尽绵薄之力

在这里插入图片描述
                      如有错误,谢谢指正;若有收获,谢谢赞美

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

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

相关文章

在Linux上安装RStudio工具并实现本地远程访问【内网穿透】

文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问…

音频怎么录制?让你轻松成为录音专家!

“音频可以录制吗?如果可以那应该怎么去操作呢?参加了一个配音比赛,需要录制自己配音的视频,但是我不懂怎么录制音频,眼看比赛就要截止了,真的很着急,大家帮帮我。” 音频录制是一项常见但强大…

【数据结构初阶】算法的时间复杂度和空间复杂度

算法的时间复杂度和空间复杂度 1.算法效率1.1 如何衡量一个算法的好坏1.2 算法的复杂度 2.时间复杂度2.1 时间复杂度的概念2.2 大O的渐进表示法2.3常见时间复杂度计算举例 3.空间复杂度4. 常见复杂度对比 1.算法效率 1.1 如何衡量一个算法的好坏 如何衡量一个算法的好坏呢&am…

【pdf密码】为什么我的PDF文件不能复制文字?

大家现在接触PDF文件越来越多,有的时候在网上下载的PDF文件打开之后,发现选中文字之后无法复制。甚至其他功能也都无法使用,这是怎么回事?该怎么办? 当我们发现文件打开之后,编辑功能无法使用,很…

设置中添加UI设置系统默认NTP服务器

经常遇到客户在内网中使用无法与ntp服务器通讯导致系统时间错乱,他们想自己替换ntp地址要么是用adb命令要么是重新刷机,这样比较浪费客户的时间。 看了一下Android系统中选择ntp地址的逻辑,发现在framework中已经有了个ntp地址那么系统将会选…

window10彻底关闭系统管理员控制(所有软件以管理员身份运行)

window10彻底关闭系统管理员控制(所有软件以管理员身份运行) gpedit.msc》计算机配置》windows设置》安全设置》安全选项》 1.用户账户控制:以管理员批准模式运行所有管理员 2.用户账户控制:用于内置管理员账户的管理员批准模式 1…

GeoHash分享

写在前边 复制的一个内部分享,所以可能更偏向PPT性质,本文提出的问题,在末尾参考材料中都会有所提及,包括更深层次的实现原理和各大API对于GeoHash的优化。感兴趣的读者可以拓展看一下。 START GeoHash是一种地址编码&#xff…

又被罚了~新生支付

近日,中国人民银行海南省分行公布行政处罚公示信息内容,具有清算机构新生支付有限公司因存违规行为领罚款单。 行政处罚决定书批准文号“琼银罚决字〔2023〕22号”表明,新生支付有限公司(通称“新生支付”)存有三项违…

深入 Maven:构建杰出的软件项目的完美工具

掌握 Meven:构建更强大、更智能的应用程序的秘诀 Maven1.1 初识Maven1.1.1 什么是Maven1.1.2 Maven的作用 02. Maven概述2.1 Maven介绍2.2 Maven模型2.3 Maven仓库2.4 Maven安装2.4.1 下载2.4.2 安装步骤 03. IDEA集成Maven3.1 配置Maven环境3.1.1 当前工程设置3.1.…

PX4-Autopilot下载与编译

文章目录 1 Git clone 代码2 下载子模块3 编译4 可能遇到的问题参考 1 Git clone 代码 Github Repository 链接:PX4-Autopilot 查看现有版本: 在终端用命令下载,-b表示branch git clone -b v1.14.0 https://github.com/PX4/PX4-Autopilot.…

最新Workerman 在线客服系统源码/附搭建教程-ThinkPHP网站在线客服系统源码

源码简介: Workerman开发的Ai智能客服在线客服系统网站源码,里面有附带安装教程文档搭建教程。它是最新Workerman 在线客服系统源码。 源码链接: 网盘源码 密码:hma8 源码特点: 作为网站在线客服系统源码,它有下…

【Java】【PAT】Basic Level 1018 锤子剪刀布

题目 1018 锤子剪刀布 作者 CHEN, Yue 单位 浙江大学 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜…

Python 中的函数包装器:模型运行时和调试

一、说明 在Python中,函数包装器被称为装饰器,它们在数据科学中具有各种有用的应用。本指南介绍如何使用它们来管理模型运行时和调试。 二、函数的封装 函数包装器是用于修改函数行为的有用工具。在Python中,它们被称为装饰器。装饰器允许我们…

设计模式:建造者模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

上一篇《策略模式》 下一篇《适配器模式》 简介: 建造者模式,它是一种对象构建模式,它提供了一种构建对象的最佳方式。这种模式适用于当对象的构建过程需要涉及到多个部分&#xff…

观察者模式 vs 发布-订阅模式:两种设计模式的对决!

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! ​ 目录 ⭐ 专栏简介 📘 文章引言 一…

设备标识牌不锈钢二维码制作

一、设备标识牌二维码好处: 1、设备信息管理:传统标识牌容纳的信息有限,将二维码用于设备标识牌,可实现设备信息丰富展示、设备文档资料可存储二维码云端、微信扫码检查查阅,无需携带纸质,同时凡尔码云端后…

JSX 动态类名控制

学习目标&#xff1a; 根据需求判断是否显示某个类名的样式 实现&#xff1a; 使用三元表达式或逻辑&&运算 import ./app.css; function App() {const color1 trueconst color2 truereturn (<div className"App">1. 三元&#xff1a;<div classN…

android项目实践说明

权限与存储 本地读取文件&#xff08;IO流&#xff09; 网络传输&#xff08;Socket通信&#xff09; 串口通信&#xff08;串行传输接口通信&#xff09; 而串口通信是应用在智能家居和单片机通信的场景&#xff0c;人脸识别门禁&#xff0c;利用串口控制门开关&#xff0…

SHELL基础编程

文章目录 SHELL基础查看有哪些解释器使用usermod修改用户解释器BASH基本特性 shell脚本的设计与运行编写问世脚本脚本格式规范执行shell脚本方法一方法二实验 变量自定义变量环境变量位置变量预定义变量 变量的扩展运用多种引号的区别双引号的应用单引号的应用反撇号或$()的应用…

leetcode 29

dividend 和 divisor都是int 类型&#xff0c;返回值也是int类型&#xff0c; 在C中&#xff0c;int类型表示整数类型&#xff0c;其范围取决于具体的实现。通常情况下&#xff0c;int类型的范围为-2147483648到2147483647&#xff0c;即-231到231-1。这是因为int类型通常为32…