namenode在内存和磁盘中都保存了fsimage和edits文件
内存中保证hdfs文件系统的访问效率,磁盘中保证hdfs文件系统的安全性
namenode的文件组成:
fsimage文件:保存文件系统中直至上次checkpoint为止 的目录和文件元数据
edits文件:保存文件系统中直至上次checkpoint为止 的操作记录
首次启动时需要格式化:hadoop fs namenode -format,主要是为了生成fsimage文件
首次过程:
启动namenode读取fsimage生成内存中元数据
启动datanode,dn向nn注册,发送blockreport
启动完成之后client可以向hdfs文件系统进行操作(create,put,get,cat...),操作日志将会被写到edits文件中
之后的过程:
读取fsimage元数据文件加载到内存,读取edits文件加载到内存,然后再磁盘中生成一份和内存中一样的fsimage文件,同时生成一份新的空edits文件,用于记录之后的hdfs操作日志
secondarynamenode:辅助namenode但是不能替代
工作过程:snn通过http请求获取nn的fsimage和edits文件,snn将fsimage加载内存然后合并edits,形成新的fsimage后发送给nn
安全模式:在namenode和datanode完全启动之前的阶段,该模式下client只能读取hdfs文件信息,不能更改任何内容
dfsadmin -safemode enter
dfsadmin -safemode get
dfsadmin -safemode leave