hadoop 删除文件流程-源码

933 阅读1分钟

hadoop fs -rm -r 之后发生了什么

image.png

1. hadoop 脚本调用 Java类:FsShell

2. DFSClient.delete() 调用 NameNodeRpcServer.delete()

image.png

3. NameNodeRpcServer.delete() 调用 FSNamesystem.delete()

image.png

4 FSDirDeleteOp.delete()

image.png

5. 先将目标目录从文件系统中删除 然后删除子目录

image.png

5.1

a. unprotectedDelete: 从namespace 中删除;

b. fsn.removeSnapshottableDirs(): 删除snapshot目录

c. fsd.updateReplicationFactor() : 更新复制集节点的block

image.png

5.1.c 更新复制集节点的block

image.png

5.2

image.png

image.png