NameNode是
整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。
文件包括:
①
fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。
②
edits:操作日志文件。
③
fstime:保存最近一次checkpoint的时间
以上这些文件是保存在linux的文件系统中。
NameNode
的工作特点
Namenode
始终在内存中保存
metedata
,用于处理“读请求”
到有“写请求”到来时,
namenode
会首先写
editlog
到磁盘,即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回
Hadoop
会维护一个
fsimage
文件,也就是
namenode
中
metedata
的镜像,但是
fsimage
不会随时与
namenode
内存中的
metedata
保持一致,而是每隔一段时间通过合并
edits文件来更新内容。Secondary namenode
就是用来合并
fsimage
和edits文件来更新NameNode的
metedata
的。
SecondaryNameNode
的工作流程
1.
secondary
通知
namenode
切换
edits文件
2.secondary
从
namenode
获得
fsimage
和
edits(通过http)
3.secondary
将
fsimage
载入内存,然后开始合并
edits
4.secondary
将新的
fsimage
发回给
namenode
5.namenode
用新的
fsimage
替换旧的
fsimage