1、NameNode的元数据管理
NameNode是HDFS主从架构的主节点的守护进程,其主要作用为:
- 负责相应客户端的读写请求
- 管理HDFS的元数据
- 配置和应用副本存放策略
- 管理集群数据块负载均衡问题
NameNode在内存和磁盘中都会保存一份完整的元数据信息,其中主要是磁盘中的元数据进行管理。磁盘中的元数据保存的位置在hdfs-site.xml中配置
其中主要是是三种文件:
fsimage 磁盘元数据镜像文件
edits_000… 历史编辑日志
edits_inprogress 数据预写操作日志文件
edits_inprogress 是当前namenode记录操作日志正在写入的文件,每隔两分钟edits_inprogress就会变成历史编辑日志。fsimage文件等价于多个edits文件合并成的,一份完整的metadata=最新的fsimage+edits_inprogress。
如果集群没有设置HA模式,那么元数据的checkpoint由secondaryNameNode来完成,否则由standby的Namenode来完成。SecondaryNamenode每隔一段时间就会从namenode拉取积累的edits和一个最新的fsimage到内存进行merge,这个过程就是元数据的checkpoint,但是假如namenode宕机从secondaryNameNode不能恢复完整的元数据信息,因为合并元数据需要时间,两者有时间差且edits_inprogress文件s