第一部分:namenode功能:
1.管理子节点
2.处理客户端发过来的请求
3.管理元数据(本文重点)
问题引入:
(1)元数据是什么:hdfs是用元数据管理数据,元数据即管理数据的数据
(2)元数据在哪儿:为了加快访问,元数据再namenode所在机器的内存上,但内存不安全,关机会被清理。所以还有一份是在磁盘中(linux中),是在零时文件/tmpData/dfs/name/current下的fsimage文件
第二部分:namenode的启动:
把fsimage中的内容加载到内存中取,后续hdfs的变化,如上传,修改,删除等,需想办法进行同步,这时候就用到SecondaryNameNode
第三部分:SecondaryNameNode的功能:
1.辅助namenode同步本地元数据,旧的fsimage加上修改的内容(edits)就是新的fsimage
即fsimge(old) + edits = fsimage(new)
2.edits:该文件很重要,记录了hdfs的修改操作,不能丢失,我们也可以通过edits日志文件信息,可以解析得到元数据
3.在合并的过程中,先合并到fs.temp文件,合并完成之后,修改名字为fsimage,删除fs.temp