Spark-源码系列-SparkCore-Shuffle-ShuffleBlockResolver
一、概述
https://www.jianshu.com/p/825ce0f30b54
二、实现
特质 ShuffleBlockResolver 定义了对 Shuffle Block 进行解析的规范,包括获取 Shuffle 数据文件、获取 Shuffle 索引文件、删除指定的 Shuffle 数据文件和索引文件、生成 Shuffle 索引文件、获取 Shuffle 块的数据等。
ShuffleBlockResolver 目前只有 IndexShuffleBlockResolver 这唯一的实现类。IndexShuffleBlockResolver 用于创建和维护 Shuffle Block 与物理文件位置之间的映射关系。
2.1. IndexShuffleBlockResolver
IndexShuffleBlockResolver 主要用 于shuffle blocks, 从逻辑 block 到物理文件之间的映射关系. 它会确保每个 Map 过程最终生成的 block(也就是blockManager 维护的那些 block) 会被按照 key sort 后放在同一个文件里, 然后另外生成一份 index file 告诉使用者文件的每一段都是哪个 key 对应的block。
2.1.1. 设计
属性
方法
获取 Shuffle 数据文件: $getDataFile()$
$getDataFile()$ 方法用于获取 Shuffle 数据文件,通过调用 BlockManager 的子组件 DiskBlockManager 的 $getFile()$ 方法获取ShuffleDataBlockId。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Joker!
评论
ValineTwikoo