HDFS数据块分类

  • toAdd:新添加的块
  • toRemove 待移除的块,收集那些没有被汇报上来的块,从blocksMap映射关系中移除掉
  • toInvalidate 无效块最根本的来源是blocksMap中不存在的块。----NameNode页面的PendingDeletionBlock块


    第一种是刚刚toRemove中的块信息,使得blocksMap移除了对应的块信息
    第二种是新汇报上来的块信息,DataNode自身有这些块信息,而NameNode自身的blocksMap中没有,也会被认为是无效块。
    

  • toCorrupt 损坏的块    在NameNode页面上所表示的损坏块的个数就是corruptReplicas对象的大小。

一个是长度大小不匹配,另一个是版本信息不匹配,
这如何理解呢?在HDFS中,块在创建完毕之后,会产生一个叫generationStamp的信息,以后每次块的内容改动,这个值都会向前追加,表示块版本的变更。判断完是否为损坏的块之后,在processReport的markBlockAsCorrput方法中,会将块加入到corruptReplicas对象里

  • toUC:正在构建中的块
发布了40 篇原创文章 · 获赞 12 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/JacksonKing/article/details/103889607