如果一个数据块需要冗余,会将其加入pendingReplications集合,如果块副本冗余完毕到某DataNode节点,该DN节点会报告给NameNode,然后NameNode从pendingReplications将块删除,如果一致没报告上来,会在一定时间范围内存储在pendingReplications内。pendingReplications为Map<Block,PendingBlockInfo>类型集合,键为PendingBlockInfo类,该类包含了一个正在被冗余的块的信息,包含了系统开始冗余该块副本的时间,也记录了正在处理的块的副本数量,而PendingReplicationMonitor类就负责扫描pendingReplications内冗余请求超时的块,默认扫描周期为5分钟,超时时间也为5分钟,如果PendingReplicationMonitor内记录的时间戳timeStamp超过5分钟,则将该块加入timedOutItems集合,该集合会在后面的ReplicationMonitor管理器用到,会将该集合内存储的块再次放到neededReplications集合里面去。
hadoop2.0之HDFS集群管理:PendingReplicationMonitor
最新推荐文章于 2022-10-31 16:24:35 发布