HDFS 中在 ClientProtocol 中出现的基本概念的抽象

  • 与数据块相关

    • 数据块:在 HDFS 中抽象为 block,block 包含三个成员变量:blockId,numbytes(数据块大小),generationStamp(数据块版本号,每次对数据块的修改版本号都会跟着修改,用于数据一致性检查,具有相同 blockId 但版本号不同的数据块至少有一个是无效的,需要删除),数据块的名称是 blk_<blockId>

    • LocateBlock:已经确定了存储位置的数据块,成员变量有:Block、数据块所在节点信息 locs、数据块在对应文件中的偏移量。Locs 是一个类型为 DataNodeIndo 的数组,包含了所有可用的数据块位置

    • locatedBlocks:可用于一次定位多个 block,包含一系列的 locatedBlock 对象

    • BlockLocalPathInfo:用于 HDFS 数据块本地读优化,当数据块与客户端位于同一台机器时,不通过数据节点读数据,而是直接本地读

  • 与 DataNode 相关:DataNodeID、DataNodeInfo

    • DataNodeID:用于在集群中唯一确定某一数据节点。可以从中获得数据节点的主机地址

    • DataNodeInfo:提供附加状态信息,包括容量,已使用流量,剩余流量,数据节点在集群中的位置,数据节点状态等信息

-----------本文结束感谢您的阅读-----------
0%