Shuffle文件寻址

  • MapOutputTracker

MapOutputTracker是Spark架构中的一个模块,是一个主从架构。管理磁盘小文件的地址。

  1. MapOutputTrackerMaster是主对象,存在于Driver中。
  2. MapOutputTrackerWorker是从对象,存在于Excutor中。
  • BlockManager

BlockManager块管理者,是Spark架构中的一个模块,也是一个主从架构。

  1. BlockManagerMaster,主对象,存在于Driver中。

BlockManagerMaster会在集群中有用到广播变量和缓存数据或者删除缓存数据的时候,通知BlockManagerSlave传输或者删除数据。

2.BlockManagerSlave,从对象,存在于Excutor中。

BlockManagerSlave会与BlockManagerSlave之间通信。

  • 无论在Driver端的BlockManager还是在Excutor端的BlockManager都含有三个对象:
  1. DiskStore:负责磁盘的管理。
  2. MemoryStore:负责内存的管理。
  3. BlockTransferService:负责数据的传输。
  • Shuffle文件寻址图

  • Shuffle文件寻址流程
  1. 当map task执行完成后,会将task的执行情况和磁盘小文件的地址封装到MpStatus对象中,通过MapOutputTrackerWorker对象向Driver中的MapOutputTrackerMaster汇报。
  2. 在所有的map task执行完毕后,Driver中就掌握了所有的磁盘小文件的地址。
  3. 在reduce task执行之前,会通过Excutor中MapOutPutTrackerWorker向Driver端的MapOutputTrackerMaster获取磁盘小文件的地址。
  4. 获取到磁盘小文件的地址后,会通过BlockManager连接数据所在节点,然后通过BlockTransferService进行数据的传输。
  5. BlockTransferService默认启动5个task去节点拉取数据。默认情况下,5个task拉取数据量不能超过48M。

Spark _18 _Shuffle文件寻址相关推荐

  1. Linux中的文件寻址,Linux文件寻址算法:逻辑地址到物理地址的转换

    题目描述: 编写一个函数实现Linux文件寻址的算法,即读取文件当前位置到物理存储位置的转换函数,需要给出运行的测试数据,可以假设和模拟需要的数据和结构.即编写一个函数unsigned long lt ...

  2. spark 读取本地文件

    1 背景 基于spark 开发程序 数据放在本地文件中,为text格式 本文语言案例为java 2   步骤 2.1 搭建工程 ​​​​​​​ 基于maven搭建spark工程_this is a b ...

  3. Spark获取CSV文件导入ClickHouse

    Spark获取CSV文件导入ClickHouse 环境配置 POM文件 ClickHouser创建临时表 数据库连接工具类(Scala版) 获取csv使用工具类导入ClickHouse(重点) 线上运 ...

  4. spark解析csv文件_Spark:解析CSV文件并按列值分组

    spark解析csv文件 我发现自己经常使用大型CSV文件,并且意识到我现有的工具集不能让我快速浏览它们,我以为我会花一些时间在Spark上看看是否有帮助. 我正在使用芝加哥市发布的犯罪数据集 :它的 ...

  5. Spark从本地文件中统计包含某个字母的行数

    Spark从本地文件中统计包含某个字母的行数: import org.apache.spark.SparkConf; import org.apache.spark.sql.Dataset; impo ...

  6. Spark 读取CSV文件为RDD

    Spark 读取CSV文件为RDD 1 准备数据 在开始之前,假设我们在文件夹"c:/tmp/files"中有以下带有逗号分隔文件内容的 CSV 文件名,我使用这些文件来演示示例. ...

  7. Spark 读取csv文件quote配置无效

    在进行数据清洗时,使用spark 读取csv文件时,遭遇到数据列中存在 \n的字符 原始数据: names "小红\n小明" 解析后数据: index names 1 小红 2 小 ...

  8. Spark任务输出文件过程详解

    文章目录 一.Spark任务输出文件的总过程 二.Commit细节分析 1.commitTask 介绍 1.1.判断是否需要commit 1.2.task的commit细节 2.commitJob 介 ...

  9. Spark sql 读文件的源码分析

    从spark jobs监控页面上经常看到这种job:     Listing leaf files and directories for 100 paths: 如图:     这其实是spark s ...

最新文章

  1. Discuz! X2.5 添加自定义数据调用模块(简单方法)
  2. canvas绘制弯月
  3. 从无到有<前端异常监控系统>落地
  4. 项目管理(一)计时计件
  5. Web常用函数介绍(LoadRunner相关)
  6. 做支付遇到的HttpClient大坑(一)
  7. 网页怎么在图片上添加文字_教你同时将图片水印和文字水印添加到视频画面
  8. Cloud一分钟 | 苹果更新“隐私页面”;中国联通大数据正式升级,进入数智新阶段...
  9. springmvc 带查询条件的分页,form的控制范围,怎么包裹条件提交给后台
  10. 阿里云徐栋:“下一代互联网”三大技术趋势
  11. Mysql三种备份,mysqdump,xtrabackup工具,基于lvm-snapshot快照备份等。
  12. JS判断数组是否包含某个元素
  13. net_device_ops的ndo_open和ndo_start_xmit函数
  14. 六款超好用的大数据分析工具
  15. 译体验|Qualtrics:客户体验的六大法则
  16. 注册ArcGIS Online账号||免费使用21天(保姆级)
  17. 【管理学知识】决策模型10-10-10法则(加油吧,少年!)
  18. Django相关操作(连续跳转和登录注册为例)
  19. 大数据风控AI竞赛总结
  20. 21天战拖记——Day21:《小强升职记》学习感受(2014-05-24)

热门文章

  1. AtCoder - arc098_b Xor Sum 2(尺取+位运算)
  2. 牛客 - 牛半仙的妹子图(并查集+bitset/克鲁斯卡尔重构树+主席树)
  3. HDU - 5876 Sparse Graph(bfs+set)
  4. PyTorch-常用代码
  5. protobuf入门教程(二):消息类型
  6. VC2008中处理CStatic控件的单击STN_CLICKED消息
  7. 彻彻底底了解回调函数
  8. C++ SYN攻击源码
  9. 面试官:你对MySQL高性能优化有什么规范建议?
  10. 曹大带我学 Go(8)—— 一个打点引发的事故