DN结构
Datanode结构可划分为3个层

BlockPoolManager
DN拥有一个BlockPoolManager实例(用于管理多个块池,一个名称空间只有一个块池),BlockPoolManager拥有多个BPOfferService对象(每个对象都封装对单个块池的api),对于BPOfferService对象的创建、移除、启动、停止等操作必须通过类BlockPoolManager的API来完成,每个BPOfferService拥有两个BPServiceActor,每个BPServiceActor封装对单nn的操作,周期性向Namenode发送心跳、 块汇报、 增量块汇报以及缓存汇报, 同时执行Namenode发回的指令等等
总而言之,就是该服务负责与NN交互,通过BlockPoolManager实现对块池的操作。
BlockPoolManager源码流程
由于时间关系就不详细进入各个方法,这是总结的源码流程

本文深入探讨了Hadoop DataNode(DN)的BlockPoolManager组件,它负责管理多个块池,并通过BPOfferService与NameNode(NN)进行交互。每个BPOfferService包含两个BPServiceActor,周期性地发送心跳、块汇报等信息给NN,并执行NN的指令。BlockPoolManager是DN与NN通信的关键,确保了Hadoop分布式存储系统的稳定运行。
749

被折叠的 条评论
为什么被折叠?



