HDFS是一个分布式存储文件系统
1.保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。一个机架上保存两个,其他机架保存一个。
NameNode 是名称管理节点:负责维护整个hdfs文件系统的目录树,以及每一个路径(文件)所对应的数据块信息(blockid及所在的datanode服务器)
datanode是数据节点:每一个block都可以在多个datanode上存储多个副本(副本数量也可以通过参数设置dfs.replication,默认是3),会定期向Namenode汇报自身所保存的文件block信息,而namenode则会负责保持文件的副本数量
SecondaryNameNode是NameNode的冷备份:合并fsimage和fsedits然后再发给namenode
fsimage文件,以fsimage_为前缀,是序列化存储的元数据的整体快照;
edits文件(又称edit log),以edits_为前缀,是顺序存储的元数据的增量修改(即客户端写入操作)日志。
SecondaryNameNode负责定时默认1小时,从namenode上,获取fsimage和edits来进行合并,然后再发送给namenode。减少namenode的工作量。
standalone下,有snn去做ckp,ha模式下,checkpoint过程会直接交给Standby NN来负责。Active NN会将edits文件同时写到本地与共享存储(QJM方案就是JournalNode集群)上去,Standby NN从JournalNode集群拉取edits文件进行合并,并保持fsimage文件与Active NN的同步。