【HDFS】datanode侧是怎么删除副本的?以及DirectoryScanner相关源码详解

  • Hadoop-3.4版本和之前版本的datanode删除副本逻辑有哪些区别?
  • invalidate方法的细节逻辑
  • DirectoryScanner相关原理(scan方法、checkAndUpdate方法、发现corrupt之后的reportBadBlocks方法)

一、Hadoop-3.4版本和以前版本的删除逻辑的区别

1. Hadoop-3.4版本之前

异步删除副本replica的操作过程如下:
1、从ReplicaMap中移除replica信息
2、从磁盘上删除replica文件(异步,可能阻塞在线程池里)
3、通过IBR(增量块汇报)通知给namenode(异步,可能阻塞在线程池里)

Current the asynchronous delete of the replica operation process is as follows:
1.remove the replica from the ReplicaMap
2.delete the replica file on the disk [blocked in threadpool]
3.notifying namenode through IBR [blocked in threadpool]

2. Hadoop-3.4版本及之后

3.4版本之前的流程可能出现的问题就是,客户端读数据的时候可能会出现大量的ReplicaNotFoundException异常。原因就是在异步删除模式下,第一步将副本信息从ReplicaMap里移除之后,第二步、

你可能感兴趣的:(HDFS全方位实战,hdfs,hadoop,大数据)