- toAdd:新添加的块
- toRemove 待移除的块,收集那些没有被汇报上来的块,从blocksMap映射关系中移除掉
- toInvalidate 无效块最根本的来源是blocksMap中不存在的块。----NameNode页面的PendingDeletionBlock块
第一种是刚刚toRemove中的块信息,使得blocksMap移除了对应的块信息
第二种是新汇报上来的块信息,DataNode自身有这些块信息,而NameNode自身的blocksMap中没有,也会被认为是无效块。
- toCorrupt 损坏的块 在NameNode页面上所表示的损坏块的个数就是corruptReplicas对象的大小。
一个是长度大小不匹配,另一个是版本信息不匹配,
这如何理解呢?在HDFS中,块在创建完毕之后,会产生一个叫generationStamp的信息,以后每次块的内容改动,这个值都会向前追加,表示块版本的变更。判断完是否为损坏的块之后,在processReport的markBlockAsCorrput方法中,会将块加入到corruptReplicas对象里
- toUC:正在构建中的块