大数据-hadoop元数据管理

元数据管理

  • 元数据三种形式
  • 元数据存储机制
  • 元数据存储流程
  • checkpoint配置参数
  • checkpoint详细过程
  • 处理宕机内存元数据消失

元数据三种形式

  • 内存元数据(meta data)
  • 磁盘元数据镜像文件(fsimage)
  • 数据操作日志文件(edits)

元数据存储机制

  • 内存中有一份完整的元数据(meta data)
  • 磁盘中有一份“准完整”的元数据镜像文件(fsimage),存在namenode工作目录中
  • meta data = fsimage + 操作日志文件(edits)
  • 当客户端对hdfs进行操作,操作记录首先被记入edits日志文件中,当客户端操作成功后,再更新到meta data

元数据存储流程

  1. 客户端操作hdfs
  2. hdfs将用户的操作日志保存在edits,每份edits有固定大小,达到大小后保存成文件tmp/dfs/name/current/edits_0000000000000000881-0000000000000000882
  3. 正在记录的未达到固定大小的edits文件,保存为文件edits_inprogress_0000000000000000892
  4. 按一定触发条件,会由SecondaryNameNode将所有edits和一个最新的fsimage(第一次需要)下载到SecondaryNameNode本地,并加载到内存进行merge,生成一个新的fsimage这个过程叫checkpoint
  5. SecondaryNameNode将新生成的fsimage覆盖到原来的镜像文件

checkpoint配置参数

dfs.namenode.checkpoint.check.period=60  #每隔60秒,检查触发条件是否满足

dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary
dfs.namenode.checkpoint.edits.dir=${dfs.namenode.checkpoint.dir}
#以上两个参数:做checkpoint操作时,secondary namenode的本地工作目录

dfs.namenode.checkpoint.max-retries=3  #最大重试次数

dfs.namenode.checkpoint.period=3600  #两次checkpoint之间的时间间隔3600秒
dfs.namenode.checkpoint.txns=1000000 #两次checkpoint之间最大的操作记录

checkpoint详细过程

处理宕机内存元数据消失

  • SNN附带作用:NameNode和SecondaryNameNode的工作目录存储结构完全相同,所有当NameNode故障需要重新恢复时,可以从SecondaryNameNode的工作目录中将fsimage拷贝到NameNode的工作目录,以恢复NameNode的元数据
  • (不建议使用,因为在恢复的过程中,服务会终止)在配置文件时,设置多个存放元数据地址,可以在不同磁盘,甚至网络地址:

    dfs.namenode.name.dir
    /home/data/namenode,path2,path3,nfs://...

  • (建议使用)HA机制

你可能感兴趣的:(大数据)