hdfs读写删文件流程

hdfs读写删文件流程

一、HDFS体系架构图
在这里插入图片描述
  1.namenode 管理元数据,不存储文件块
  2.Metadata 元数据(文件所在的目录,replication)
  3.Datanode 存储数据块的
  4.Rack 机架
  5.Block 文件块
  6.Client 客户端
二、HDFS读取(下载)文件的流程
在这里插入图片描述
  1.Open file 是要获取HDFS上指定文件的输入流。此过程中,namenode会检查路径的合法性,还是检查权限。如果不通过,直接报错返回。
  2.向namenode获取元数据信息,并将元数据信息封装到输入流返回给客户端。
  3.4根据元数据信息以及顺序编号去指定的datanode读取文件块。
  5.读完之后,关流。
三、HDFS上传(写)文件的流程图
在这里插入图片描述
  1.Create file 获取上传文件的输出流,namenode检查路径的合法性和权限。如果都通过,namenode会将文件的切块信息(切块数量,每个块存储的位置信息)封装到输出流返回给客户端。
  2.3,4 PipeLine数据流管道思想。当每个datanode收到packet后,向上游发送ack确认信息,到第五5,客户端收到ack之后,开始发送下一个packet。此外,用到了全双工通信。packet是一个64kb大小的数据包。
  在这里插入图片描述
  6.close file 关流。
四、HDFS删除流程
  1.client 执行 hadoop fs -rm /abc.txt
  2.会执行DistributedFileSystem类的delete方法,这个方法会接收用户传来的文件路径 /abc.txt=》找namenode,执行delete方法(源码注释:Delete the given file or directory from the file system.)=》这里注意,namenode的删除操作,只是把这个路径信息从内存里元数据信息里删除,但是真正的数据的block块并没有立即删除。但是这并不影响,因为如果元数据里没有此文件信息,拿也拿不到。
  3.如果想真正删干净对应的文件数据,得通过DataNode来删除。DataNode会定期的给NameNode发送心跳包,如果是删除,NameNode在接收到DataNode心跳包后,会把删除的指令包括删除哪些文件数据传达给DataNode,DataNode接到指令后,执行删除指令,把block块从本机上删除。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值