HDFS中NameNode管理元数据机制

NameNode职责

  • 响应客户端请求
  • 维护目录树
  • 管理元数据(查询,修改)

HDFS元数据存储

  1. 内存中有一份完整的元数据(特定数据结构)
  2. 磁盘有一个“准完整”的元数据的镜像文件
  3. 当客户端对HDFS中的文件进行新增或者修改操作,首先会在edits文件中记录操作日志,当客户端操作成功后,相应的元数据会更新到内存中;每隔一段时间,会由secondary namenodenamenode上积累的所有edits和一个最新的fsimage下载到本地,并加载至内存进行merge(这个过程称为checkpoint
  4. 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之间最大的操作记录
  5. namenodesecondary namenode的工作目录存储结构完全相同,所以,当namenode故障退出需要重新恢复时,可以从secondary namenode的工作目录中将fsimage拷贝到namenode的工作目录,以恢复namenode的元数据。

元数据的checkpoint

原文地址:https://www.cnblogs.com/Java-Script/p/11090447.html