hdfs读写流程,checkpoint流程
HDFS写流程
步骤:
1.客户请求namenode上传文件,附带路径
2.namenode检查,并响应是否允许
3.客户端将文件分块,并请求分配block和datanode地址
4.namenode响应客户端求,给定地址d1、d4、d6
5.客户端建立管道:d1收到请求继续调用d4,d4再调用d6。按照pop的方法取出队列第一个值。
6.最后d6返回成功给d4再返回给d1回到客户端。
HDFS读文件流程
1.客户端请求namenode读文件
2.namenode分配最近的block地址
3.客户按照地址和datanode建立连接读文件
checkpoint流程
在hdfs-site.xml文件指定secondarynamenode部署在哪个机器上
<property> <name>dfs.namenode.secondary.http-address</name> <value>hdp02:50090</value> </property>
1.sn提醒nn做checkpoint
2.nn上的edit_inprogress文件滚动生成edit_sum文件
3.将edit_sum文件传给sn
4.sn更新fsimage文件
5.sn将文件写入磁盘
6.将文件传给nn
作用讲解:
edit:NameNode在本地操作hdfs系统的文件都会保存在Edits日志文件中。也就是说当文件系统中的任何元数据产生操作时,都会记录在Edits日志文件中(增删改查)
fsimage:存放的是一份最完整的元数据信息,内容比较大
edit一直记录元数据操作记录的话,也会慢慢膨胀的比较大,也会造成操作起来比较困难
为了控制edits不会膨胀太大,引入secondaryNameNode机制。
ss主要作用合并edits和fsimage文件,清空edit
元数据
元数据的分类
按形式分类:内存元数据和元数据文件;它们的存在的位置分别为:内存和磁盘上。其中内存元数据主要是hdfs文件目录的管理;元数据文件则用于持久化存储。
按类型分,元数据主要包括:
1、文件、目录自身的属性信息,例如文件名,目录名,修改信息等。
2、文件记录的信息的存储相关的信息,例如存储块信息,分块情况,副本个数等。
3、记录HDFS的Datanode的信息,用于DataNode的管理。