Spark简单回顾

星光下的赶路人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。
![]()
您的支持是我创作的无限动力
![]()
希望我能为您的未来尽绵薄之力
![]()
如有错误,谢谢指正;若有收获,谢谢赞美
相关文章:
Spark简单回顾
星光下的赶路人star的个人主页 大鹏一日同风起,扶摇直上九万里 文章目录 1、Spark1.1 Spark入门1.1.1 Spark部署模式1.1.2 常用端口 1.2 SparkCore1.2.1 RDD不可变和五大属性1.2.2 RDD的弹性1.2.3 cache和Checkpoint的区别1.2.4 算子 1.3 SparkSQL1.4 内核1.4.1提交…...
DDD与微服务的千丝万缕
一、软件设计发展过程二、什么是DDD?2.1 战略设计2.2 战术设计2.3 名词扫盲1. 领域和子域2. 核心域、通用域和支撑域3. 通用语言4. 限界上下文5. 实体和值对象6. 聚合和聚合根 2.4 事件风暴2.5 领域事件 三、DDD与微服务3.1 DDD与微服务的关系3.2 基于DDD进行微服务…...
S32K324 UDS Bootloader开发-需求篇
文章目录 前言内存分配UDS诊断协议需求CAN ID及时间参数UDS诊断服务Bootloader诊断服务APP诊断服务 DID22服务的DID:2E服务的DID:Routine Control DID: 刷写流程预编程主编程后编程 总结 前言 之前做过一个STM32的UDS Bootloader,协议栈主要是NXP官网下…...
【前端设计模式】之调停者模式(中介者模式)
调停者模式是一种行为设计模式,它通过引入一个调停者对象来集中处理一组对象之间的交互。调停者模式的目标是减少对象之间的直接通信,从而降低耦合度,并且使代码更易于维护和扩展。 调停者模式特性 将对象之间的通信集中在一个调停者对象中…...
【MySQL架构篇】SQL执行流程与缓冲池
文章目录 1. SQL执行流程2. 数据库缓冲池(Buffer Pool)2.1 缓冲池概述2.2 缓冲池如何读取数据2.3 查看和设置缓冲池的大小2.4 多个Buffer Pool实例2.5 引申问题 1. SQL执行流程 查询缓存:因为查询效率往往不高,所以在MySQL8.0之后就抛弃了这个功能解析器…...
[support2022@cock.li].faust、[tsai.shen@mailfence.com].faust勒索病毒数据怎么处理|数据解密恢复
引言: 威胁网络安全的恶意软件不断涌现,而[support2022cock.li].faust勒索病毒则是其中的一员。这个网络黑暗角落的新星,以其数据绑架的方式,一度成为数据安全的威胁焦点。本文将探究[support2022cock.li].faust勒索病毒的运作方…...
力扣学习笔记——49. 字母异位词分组
49. 字母异位词分组 https://leetcode.cn/problems/group-anagrams/?envTypestudy-plan-v2&envIdtop-100-liked 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。…...
五、Qt中的常用类
1. QString 字符串类 QString是Qt中的字符串类,与C/C不同的是,不再使用ASCII编码,而使用Unicode编码。因此一个字符不是8位的char,而是16位的QChar,这就是为什么之前一个汉字占用一个字符的原因。、 QString几乎向前兼…...
CentOS 7.9.2009 数据盘挂载
一、linux版本: lsb_release -a 二、操作步骤 2.1,查看磁盘挂载情况,确认sdb是需挂载的硬盘 ## 查看磁盘挂载情况,确认sdb是需挂载的硬盘 lsblk 2.2,对硬盘sdb进行分区 ## 对硬盘sdb进行分区 fdisk /dev/sdb# 命令…...
cv::solvePnP使用方法及注意点详解(OpenCV/C++)
cv::solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, useExtrinsicGuess, flags); 1、参数说明: objectPoints:一个 vector<cv::Point3f>,包含了在世界坐标系中的三维点的坐标,至少需要4个点…...
DevOps持续集成-Jenkins(4)
❤️作者简介:2022新星计划第三季云原生与云计算赛道Top5🏅、华为云享专家🏅、云原生领域潜力新星🏅 💛博客首页:C站个人主页🌞 💗作者目的:如有错误请指正,将…...
【数据仓库-零】数据仓库知识体系 ing
文章目录 一. 数仓基本概念二. 离线数仓建设方法论三. etl流程四. 数仓规范建设指南四. 数据仓库架构五. 数据可视化 通过熟悉构建数仓整体的过程,可以系统的了解 数仓构建理论:能够站在全局角度看数仓的运行架构,数仓执行流程。了解到构建数…...
css3 3D 转换 技巧详细解析与代码实例
CSS3 3D转换是CSS3中的一项新特性,通过它我们可以比较容易地实现3D效果。在这里,我将向大家介绍CSS3 3D转换的一些基本概念、使用方法和常见技巧。 1. 基本概念 在使用CSS3 3D转换时,需要了解一些基础概念: 三维坐标系…...
[Unity]给场景中的3D字体TextMesh增加描边方案一
取你的文本对象,简单地添加以下脚本: using UnityEngine; using System.Collections; using UnityEngine.UI;public class TextOutline : MonoBehaviour {public float pixelSize 1;public Color outlineColor Color.black;public bool resolutionDependant fal…...
TDengine(taos)数据库导出历史数据
业务需求:导出某个站点的累计充电量,累计放电量,光伏总放电量,进线总功率的所有数据‘ 1、登录taos,使用存数据的库; 提示Database changed;即为使用成功; 2、找到你想要导出的字段…...
算法进修Day-37
算法进修Day-37 73. 矩阵置零 难度:中等 题目要求 给定一个 _m_ x _n_ 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例1 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[…...
服务器之日常整活
文章目录 一,序二、服务器相关流水帐未完,待补充 一,序 假如你有一台服务器,你最想做哪些事? 等等,什么叫假如你有一台服务器,假如只有一台,肯定我想搞第二台,顺便第三台…...
交互式 Web 应用 0 基础入门
初探 Gradio:轻松构建交互式 Web 应用 文章目录 初探 Gradio:轻松构建交互式 Web 应用Why Gradio?安装 Gradio创建交互式界面1. gr.Interface2. gr.Blocks 强大的组件库输入输出组件控制组件布局组件 示例交互式数据可视化多组件同时(嵌套&a…...
JSONP的安全性较差,那么在跨域情况下,有没有其他更安全的替代方案呢?
在跨域情况下,为了保证安全性,有几种更安全的替代方案可以考虑使用: 1:CORS(Cross-Origin Resource Sharing): CORS 是一种现代化的跨域解决方案,通过在服务器端设置响应头来控制跨…...
Slax Linux 获得增强的会话管理和启动参数选项
Slax Linux 的创建者和维护者托马斯-马特吉切克(Tomas Matejicek)在自己生日这天(生日快乐!)发布了其小巧便携的 GNU/Linux 发行版的新版本,带来了各种增强功能和错误修复。 新发布的 Slax Linux 版本&…...
Qalculate! 终极数学计算库:从新手到专家的完整指南
Qalculate! 终极数学计算库:从新手到专家的完整指南 【免费下载链接】libqalculate Qalculate! library and CLI 项目地址: https://gitcode.com/gh_mirrors/li/libqalculate Qalculate! 是一个功能强大的开源数学计算库,它提供了从简单算术到复杂…...
PostgreSQL列式存储革命:cstore_fdw完整指南与10个性能优化技巧
PostgreSQL列式存储革命:cstore_fdw完整指南与10个性能优化技巧 【免费下载链接】cstore_fdw Columnar storage extension for Postgres built as a foreign data wrapper. Check out https://github.com/citusdata/citus for a modernized columnar storage implem…...
FanControl风扇控制软件:5分钟快速上手指南,轻松解决电脑噪音与散热难题
FanControl风扇控制软件:5分钟快速上手指南,轻松解决电脑噪音与散热难题 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gi…...
人类的自然关系与AI的形式化关系
“人类的自然关系”与“AI的形式化关系”是理解下一代人机环境系统智能的两个核心哲学维度。它们分别代表了智能系统在物理世界中的生存根基与在数字世界中的运行逻辑。我们可以从以下三个层面来深度解析这两者的区别与融合:人类的自然关系:从“征服掠夺…...
三步法实战指南:用FanControl打造静音高效的Windows风扇控制系统
三步法实战指南:用FanControl打造静音高效的Windows风扇控制系统 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_T…...
2026年唯一通过广电AIGC内容安全认证的3款视频生成工具(附检测报告编号+审核链路图解)
更多请点击: https://kaifayun.com 第一章:2026年AI视频生成工具排行榜 2026年,AI视频生成技术已迈入“语义帧精控”与“跨模态时序对齐”新阶段。主流工具普遍支持 毫秒级动作锚点标注、 物理引擎协同渲染及 多镜头逻辑自动剪辑,…...
从一次数据解析Bug说起:彻底搞懂QString的toLocal8Bit、toUtf8和toLatin1该用哪个
从一次数据解析Bug说起:彻底搞懂QString的编码转换选择 上周排查一个网络协议解析问题时,遇到一个典型的编码陷阱:服务端返回的GBK编码数据包,在Qt客户端用toUtf8()解析后出现乱码。这个看似简单的编码问题背后,隐藏着…...
SWAT建模效率翻倍:利用ArcGIS模型构建器自动化处理HWSD土壤数据全流程
SWAT建模效率革命:ArcGIS模型构建器全自动处理HWSD土壤数据实战指南 当你在凌晨三点盯着屏幕上第七次重复运行的"Extract by Mask"工具,看着进度条缓慢爬升时,是否想过这些机械化的操作本可以一键完成?本文将为中高级SW…...
基于RP2040与CircuitPython的互动声光按钮:从硬件到代码的完整实现
1. 项目概述:一个能听会“说”的互动按钮几年前,我第一次接触嵌入式开发时,被那些能感知物理世界并做出回应的“智能”小玩意儿深深吸引。从简单的闪烁LED,到能根据环境光调整亮度的灯带,再到能播放声音的互动装置&…...
Boomi 与 Gong 达成合作,将 Revenue AI 引入 Boomi Agentstudio
Gong 的 Revenue AI 现已原生集成至 Boomi Enterprise Platform 面向 AI 时代的数据激活公司 Boomi 今日宣布,与 Revenue AI 领域领导者 Gong 达成合作,将 Gong 捕获的营收信号原生整合至 Boomi Enterprise Platform。通过此次合作,企业可构…...
