HDFS中NameNode管理元数据机制
原创
©著作权归作者所有:来自51CTO博客作者CoderZZZ的原创作品,请联系作者获取转载授权,否则将追究法律责任
NameNode职责
HDFS元数据存储
- 内存中有一份完整的元数据(特定数据结构)
- 磁盘有一个“准完整”的元数据的镜像文件
- 当客户端对HDFS中的文件进行新增或者修改操作,首先会在
edits文件中记录操作日志,当客户端操作成功后,相应的元数据会更新到内存中;每隔一段时间,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载至内存进行merge(这个过程称为checkpoint) - checkpoint操作的触发条件配置参数:
dfs.namenode.checkpoint.check.period=60 #检查触发条件是否满足的频率,60秒dfs.namenode.checkpoint.
dir=file://${hadoop.tmp.dir}/dfs/namesecondary #以上两个参数做checkpoint操作时,secondary namenode的本地工作目录dfs.namenode.checkpoint.edits.
dir=${dfs.namenode.checkpoint.dir}dfs.namenode.checkpoint.max
-retries=3 #最大重试次数dfs.namenode.checkpoint.period
=360 #两次checkpoint之间的时间间隔3600秒dfs.namenode.checkpoint.txns
=1000000 #两次checkpoint之间最大的操作记录
-
namenode和secondary namenode的工作目录存储结构完全相同,所以,当namenode故障退出需要重新恢复时,可以从secondary namenode的工作目录中将fsimage拷贝到namenode的工作目录,以恢复namenode的元数据。
元数据的checkpoint