【HDFS笔记】描述Block和DataNode相关对象整理

【HDFS笔记】描述Block和DataNode相关对象整理

注:
NN:NameNode
DN:DataNode

描述block相关对象

Block是一个数据块,只有一个,它只存在于一个块池中(一个块池对应的是一个命名空间)!他可以对应很多个副本Replica,这些副本分布在不同的DataNode上。

(1)LocatedBlock = ExtendedBlock + 存储ID/存储类型 + 是否所有副本都失效 +【多个】存储这个块的DataNode的信息(DatanodeInfoWithStorage+DatanodeInfo)

(2)ExtendedBlock = Block + PoolID (即ExtendedBlock 就是标志了块池的块)

(3)Block = blockId + 时间戳 + 块大小

(4)BlockInfo = blockId + 复制因子 + BlocksMap中的下一个节点 + 【多个】存储这个块的DataNode的信息(DatanodeStorageInfo)

描述DataNode相关对象

注意这些是在NN(NameNode)中来描述DN相关的
(1)DatanodeStorageInfo
DatanodeStorageInfo 描述了DN上的一个存储,一个DN上可以有多个存储(在dfs.datanode.data.dir中配置多个Datanode的存储目录)
DatanodeStorageInfo = DatanodeDescriptor + 存储ID/存储类型 + 各种状态容量 + 【多个】该DN上存储的块
(多个BlockInfo 用FoldedTreeSet的形式组装)

(2)DatanodeDescriptor
DatanodeDescriptor是对DataNode的抽象,它是NameNode的内部数据结构,配合BlockMap和INode,记录了文件系统中所有Datanodes包含的Block信息,以及对应的INode信息。
DatanodeDescriptor 继承自 DatanodeInfo ,DatanodeInfo 继承自DatanodeID

(3)DatanodeInfo 继承自DatanodeID
DatanodeInfo = 容量/已用/未用等 + 位置(volatile String location)+ 主机列表(List dependentHostNames)

(4)DatanodeID
DataNodeID包含属性
DatanodeID中包含主机名,ip地址,端口号等,知道了DatanodeID就可以找到这个DN

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值