赞
踩
一、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块从本机上删除。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。