BlockManager原理解析

Spark Shuffle源码分析系列之MapOutputTracker MapOutputTracker是spark环境的主要组件之一,其功能有三方面,首先DAGScheduler使用MapOutputTrackerMaster来管理各个ShuffleMapTask的输出数据[MapStatus],另外根据各ShuffleMapTask结果的统计信息来进行尽可能的本地化Scheduler;其次ShuffleMapStage使用MapOutputTrackerMaster来判断是否要进行ShuffleMapTask的计算;最后ShuffleReduce任务用来获取从哪些exec. 阅读详情

这里写图片描述
一、BlockManager运行实例观察

从Application启动的角度来观察BlockManager;

1,在Application启动时会在SparkEnv中注册BlockManagerMaster以及MapOutputTracker,其中

a) BlockManagerMaster:对整个集群的Block数据进行管理的;

b) MapOutputTracker:跟踪所有mapper的输出的;

2,BlockManagerMasterEndpoint本身是一个消息体,会负责通过远程消息通信的方式去管理所有节点的BlockManager;

3,每启动一个ExecutorBackend都会实例化BlockManager并通过远程通讯的方式注册给BlockManagerMaster;实质上是Executor中的BlockManager在启动的时候注册给了Driver上的BlockManagerMasterEndpoint;

4,MemoryStore是BlockManager中专门负责内存数据存储和读写的类;

5,DiskStore是BlockManager中专门负责基于磁盘的数据存储和读写的类;

6,DiskBlockManager:管理LogicBlock与Disk上的Physical Block之间的映射关系并负责磁盘的文件的创建、读写等;

从Job运行的角度来观察BlockManager;

1,首先通过MemoryStore才存储广播变量;

2,在Driver中是通过BlockManagerInfo来管理集群中每个ExecutorBackend中BlockManager中的元数据信息的;

3,当改变具体的ExecutorBackend上的Block信息后就必须发消息给Dirver中的BlockManagerMaster来更新相应的BlockManageInfo;

4,当执行第二个Stage的时候,第二个Stage会向Dirver中的MapOutputTrackerMasterEndpoint发消息请求上一个Stage中相应的输出,此时MapOutputTrackerMaster会把上一个Stage的输出数据的元信息发送当前请求的Stage;

相应的日志信息:

 16/02/14 20:47:15 INFO Spark.MapOutputTrackerMasterEndpoint: Asked to send map output locations for shuffle 0 to Worker3:45965

16/02/14 20:47:15 INFO spark.MapOutputTrackerMaster: Size of output statuses for shuffle 0 is 218 bytes

16/02/14 20:47:15 INFO storage.BlockManagerInfo: Added broadcast_2_piece0 in memory on Worker4:46458 (size: 22.6 KB, free: 2.7 GB)

16/02/14 20:47:15 INFO spark.MapOutputTrackerMasterEndpoint: Asked to send map output locations for shuffle 0 to Worker4:57697
pandas删列原理与性能优化:BlockManager、内存拷贝与CoW机制解析 pandas DataFrame删列并非简单的列移除操作,其底层依赖BlockManager按数据类型分块存储,删列实际触发块内元数据更新或跨块重组;理解copy=False生效条件、inplace=True的真实语义及写时复制(CoW)机制,是避免隐式拷贝、内存暴涨和链式调用中断的关键;该技术广泛应用于数据清洗、特征工程和ETL pipeline优化,在金融风控、电商日志分析等百万级数据场景中直接影响内存效率与运行稳定性。 阅读详情

相关推荐

NVIDIA DGX Spark实战:如何在桌面上轻松运行200B参数大模型?

本文详细介绍了如何利用NVIDIA DGX Spark在桌面端轻松运行200B参数大模型。通过实战演示,从系统初始化、模型获取部署到内存管理与性能调优,重点解析了其统一内存架构如何解决本地推理的显存瓶颈,并探讨了进行轻量化微调(如LoRA)的可能性,为AI开发者和研究团队提供了高效的本地化大模型操作方案。

weixin_29054195的博客 882

BlockManager原理和源码解密

一、BlockManager运行实例观察从Application启动的角度来观察BlockManager;1,在Application启动时会在SparkEnv中注册BlockManagerMaster以及MapOutputTracker,其中a) BlockManagerMaster:对整个集群的Block数据进行管理的;b) MapOutputTracker:跟踪所有mapper的输出的;2,B

sundujing的博客 3157

Win10安装Nek5000

1 安装wsl 2 2 安装Nek5000 3 安装依赖项 4 安装openmpi 5 配置Nek5000 6 编译Nek5000 7 运行Nek5000算例 8 安装paraview并查看结果

weixin_43176703的博客 3448

Spark:遇到问题汇总

问题一:Map output statuses were bytes which exceeds spark.akka.frameSize   17/10/12 00:15:38 INFO spark.MapOutputTrackerMasterActor: Asked to send map output locations for shuffle 1 to spark...

不花的花和尚的博客 649

NLP实战:如何用CoNLL-2003数据集快速提升命名实体识别模型性能(附完整代码)

本文详细介绍了如何利用CoNLL-2003公开数据集,通过深度剖析数据特点、构建鲁棒的数据预处理流水线、选择合适的模型架构(如BERT-CRF)以及优化训练策略,来系统性地提升命名实体识别(NER)模型的性能。文章提供了完整的代码示例,并分享了处理数据不均衡、标签对齐等核心挑战的实战技巧,帮助读者从理论到实践全面掌握NER任务。

cola5的博客 494

从婴儿学步到工业级应用:VLA的‘隐式标定‘原理通俗图解

本文深入解析VLA(Vision-Language-Action)模型的'隐式标定'原理,通过类比婴儿学习机制,揭示其如何替代传统手眼标定技术。文章对比了工业机器人传统标定与VLA数据驱动方法的差异,并可视化神经网络注意力机制,展示其在空间关系编码上的突破性进展。最后探讨了VLA在工业应用中的优势与混合架构解决方案。

pz890123456的博客 323

大规模数据处理中拒绝连接错误分析处理

1、处理的数据有几百个G,把数据处理成按照手机号计算1万多个特征 ;2、数据处理环境:     spark-2.0.2;    --executor-memory 40g --total-executor-cores 120 --driver-memory 40g  3、报的错误org.apache.spark.shuffle.MetadataFetchFailedException: Missi...

大师兄你家猴跑啦的博客 4643

同花顺【红绿趋势】幅图指标 源码分析

a10:IF(差值<=0 ,0 ,差值*0.2 ,4 ,0),STICK,linethick5,colorred;a7:IF(差值<=0 ,0 ,差值*0.8 ,4 ,0),STICK,linethick5,colorred;a8:IF(差值<=0 ,0 ,差值*0.6 ,4 ,0),STICK,linethick5,colorred;a6:IF(差值<=0 ,0 ,差值*1 ,4 , 0),STICK,linethick5,colorred;DRAWICON(先锋<0,-25,1);

zhibiaogong的博客 4050

Error communicating with MapOutputTracker-问题解析2

spark.MapOutputTrackerMasterActor: Map output statuses were 14371441 bytes which exceeds spark.akka.frameSize (10485760 bytes). org.apache.spark.SparkException: Map output statuses were 14371441 bytes which exceeds spark.akka.frameSize (10485760 bytes).

liliang199的专栏 2856

YOLOv11 TensorRT极致加速:C++部署性能优化完全指南

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有!

LXY_LOVE36的博客 115

第47节:cesium 热力图效果(含源码+视频)

cesium 热力图效果

qq_29384639的博客 1675

十四、BlockManager原理解析

1 原理图 Driver上,有BlockManagerMaster,它负责对各个节点上的BlockManager内部管理的数据的元数据进行维护,比如block的增删改等操作,都会在这里维护元数据等变更。 每个节点上都有BlockManager。BlockManager有几个关键的组件: DiskStore:负责对磁盘上的数据进行读写。 MemoryStore:负责对内存中的数据进行读写。 ...

一朵的专栏 509

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

BlockManager架构原理源码解析

本篇博文的主要内容如下: 1. BlockManager运行实例 2. BlockManager原理流程图 3. BlockManager源码解析 一:BlockManager运行实例观察 从Application启动的角度来观察BlockManager1. 在Application启动的时候还在SparkEnv中注册Bl

snail_gesture的博客 1478

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spark源码——BlockManager

(图片来源:北风网) 源码所在目录: 首先进入BlockManagerMasterEndpoint看看 /** * BlockManagerMasterEndpoint is an [[ThreadSafeRpcEndpoint]] on the master node to track statuses * of all slaves' block managers. */ BlockManagerMasterEndpoint 是主节点上的 [[ThreadSafeRpcEndpoint]].

阿松的博客 2308

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

BlockManager架构原理、运行流程图和源码解密

引言BlockManager 是管理整个Spark运行时的数据读写的,当然也包含数据存储本身,在这个基础之上进行读写操作,由于 Spark 本身是分布式的,所以 BlockManager 也是分布式的, BlockManager 原理流程图[下图是 BlockManager 原理流程图] BlockManager 运行實例从 Application 启动的角度来观察BlockManager在 Ap...

lzf的博客 9479

10.BlockManager源码分析

先来张原理图吧 ! 上面的BlockManagerWorker是在1.3之前的版本中才有的 , 从1.3开始BlockManagerWorker由BlockTransferService替代 .    其实BlockManagerMaster的主要工作是交于BlockManagerMasterActor来处理的: /** * BlockManagerMa

AlanHand的专栏 954

Spark blockmanager架构

从Application启动的角度来观察BlockManager运行 1.在Application启动的时候,会在SparkEnv中注册BlockManagerMaster以及MapOutputTracker,其中  a>BlockManagerMaster:对整个集群的Block数据进行管理  b>MapOutputTrackerMaster:跟踪所有的Mapper的输出的 2.Bl

1126

BlockManager分析

BlockManager分析 BlockManager 是一个嵌入在 spark 中的 key-value型分布式存储系统。它分为master和slave。 Driver 端 是BlockManagermaster;Executor 节点 是BlockManagerslave; BlockManager 在一个 spark 应用中作为一个本地缓存运...

weixin_43006131的博客 340

Spark-BlockManager、BlockManagerSlaveEndpoint、DiskStore、MemoryStore、BlockInfoManager、BlockInfo 源码解析

Spark-BlockManager、DiskStore、MemoryStore、BlockInfoManager、BlockInfo 源码解析class BlockInfo & Object BlockInfoclass BlockInfoManagerclass MemoryStore & class DiskStoreclass BlockManagerclass Block...

u010374412的博客 1889

Spark:BlockManager原理剖析与源码分析

BlockManager是Spark的分布式存储系统,与我们平常说的分布式存储系统是有区别的,区别就是这个分布式存储系统只会管理Block块数据,它运行在所有节点上。BlockManager的结构是Maser-Slave架构,Master就是Driver上的BlockManagerMaster,Slave就是每个Executor上的BlockManager。BlockManagerMaster负责...

标题 3716

22、BlockManager原理剖析与源码分析

一、原理1、图解Driver上,有BlockManagerMaster,它的功能,就是负责对各个节点上的BlockManager内部管理的数据的元数据进行维护, 比如Block的增删改等操作,都会在这里维护元数据的变更; 每个节点上,都有BlockManager,BlockManager上有几个关键组件: DiskStore,负责对磁盘上的数据进行读写; MemoryStore,负责对...

weixin_30830327的博客 192

[Spark内核] 第38课:BlockManager架构原理、运行流程图和源码解密

本课主题 BlockManager运行實例 BlockManager 原理流程图 BlockManager 源码解析 引言 BlockManager 是管理整个Spark运行时的数据读写的,当然也包含数据存储本身,在这个基础之上进行读写操作,由于 Spark 本身是分布式的,所以 BlockManager 也是分布式的, BlockManager原理流程图 [...

weixin_30716141的博客 76

38 Sparkcore中的BlockManager

主要内容: 1. BlockManager 运行实例 2. BlockManager 原理流程图

Hipparchus的博客 1081
上一篇: Task执行原理解析
下一篇: BlockManager初始化和注册解密、BlockManagerMaster工作解密、BlockTransferService解密、本地数据读写解密、远程数据读写解密
囧芝麻
博客等级 码龄10年 10粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值