当前位置:   article > 正文

hdfs读写删文件流程_hdfs上传,删除下载文件流程图

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块从本机上删除。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/721795
推荐阅读
相关标签
  

闽ICP备14008679号