在hdfs中,某个块的副本数不足时,什么时候才能把副本数补全?
参数 | 默认值 (都是6小时) | 作用 | |
dfs.blockreport.intervalMsec | 21600000 | datanode全量块汇报的间隔 | |
dfs.datanode.directoryscan.interval | 21600 | datanode扫描磁盘存储的时间间隔,当扫描到磁盘中某个块有问题时,会将datanode内存中的块信息也删除 | |
当将dfs.datanode.directoryscan.interval的值缩小到10分钟时,将某个块人为的删除掉,在日志中可以看到删除块的信息。但是不能很快的补全少的块
日志内容(datanode扫描遍历存储池pool,可以发现坏的块。但是namenode此时并不知道,没有任何响应)
将dfs.blockreport.intervalMsec(全量块汇报)缩小到10分钟,可以看到在全量块汇报后,将损失的块补全
三组正常的块汇报和三组正常的datanode存储池扫描
datanode上的正常日志:对应的三组全量块汇报(一般情况下块池的扫描和全量块汇报不是同时进行的,这里的实验集群是正赶巧了,集群几乎没有压力)
对应的namenode上的接受dn的全量块汇报
增量块汇报
数据块增量汇报时间间隔是心跳时间间隔的100倍,默认情况下是5分钟