zoukankan      html  css  js  c++  java
  • Hadoop NameNode 元数据以及查看元数据的方式

    HDFS中NameNode工作机制
    1.NameNode的主要功能
    (1)负责客户端请求的响应;

    (2)负责元数据的管理。

    2.元数据管理
    namenode对数据管理采用了三种存储形式:

    (1)内存元数据;

    (2)磁盘元数据镜像文件;

    (3)数据操作日志文件(可以通过日志运算出元数据)。

    2.1元数据的存储机制
    (1)内存中有一份完整的元数据(meta data);

    (2)磁盘中有一个元数据镜像文件(fsimage),fsimage是HDFS文件系统存于硬盘中的元数据检查点,里面记录了自最后一次检查点之前HDFS文件系统中所有目录和文件的序列化信息;

    (3)用于衔接内存meta data和持久化元数据镜像fsimage之间的操作日志(edits文件);edits保存了自最后一次检查点之后所有针对HDFS文件系统的操作,比如:增加文件、重命名文件、删除目录等等。

    这两种文件存放在${dfs.namenode.name.dir}/current/目录下,文件名以edits_和fsimage_命名,该目录为NameNode上的本地目录。为了保证这两种元数据文件的高可用性,一般的做法,将dfs.namenode.name.dir设置成以逗号分隔的多个目录,这多个目录至少不要在一块磁盘上,最好放在不同的机器上。

    2.2手动查看元数据
    由于这fsimage和edits是经过序列化的,非文本的,因此无法直接查看,Hadoop2.X中,hdfs提供了查看这两种文件的工具。

    (1)命令hdfs oiv用于将fsimage文件转换成其他格式的,如文本文件、XML文件。

        该命令需要以下参数:

        必须参数:-i 输入fsimage文件,-o 输出文件路径,如果该路径已存在,则覆盖.

        可选参数:-p 将fsimage转换成哪种格式,有Ls/XML/FileDistribution,默认为Ls。

                        -h 显示帮助信息。

    (2)命令hdfs oev用于查看edits文件


      该命令需要以下参数:

        必须参数:-i 输入edits文件,如果是xml后缀,表示XML格式,其他表示二进制。

        可选参数:-p 将edits转换成哪种格式,有Ls/XML/FileDistribution,默认为Ls。

                        -h 显示帮助信息。

                        -f 重置输入edits文件中的transaction IDs。

                        -r 使用recovery模式,跳过edits中的错误记录。

                        -v 打印处理时的输出。

    2.3 元数据的checkpoint
    每隔一段时间,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge,这个过程称为checkpoint。


    checkpoint操作的触发条件配置参数,在hdfs-site.xml文件配置

    dfs.namenode.checkpoint.check.period=60  #检查触发条件是否满足的频率,60秒
    
    dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary   // 配置从Active namenode 下载的镜像文件临时存放的节点。
    
    dfs.namenode.checkpoint.edits.dir=${dfs.namenode.checkpoint.dir}    //  配置从Active namenode 下载的编辑日志临时存放的节点。
    
    
    dfs.namenode.checkpoint.max-retries=3  #最大重试次数
    
    dfs.namenode.checkpoint.period=3600  #两次checkpoint之间的时间间隔3600秒
    
    dfs.namenode.checkpoint.txns=1000000 #两次checkpoint之间最大的操作记录

    checkpoint的作用
    namenode和secondary namenode或者 standby namenode的工作目录存储结构完全相同,所以,当namenode故障退出需要重新恢复时,可以从 secondary namenode的工作目录中将fsimage拷贝到namenode的工作目录,以恢复namenode的元数据。

    参考文章

    https://blog.csdn.net/qq_34715484/article/details/80166665

  • 相关阅读:
    简单工厂模式、工厂模式、抽象工厂模式
    直接插入排序
    简单选择排序的陷阱
    面试3 题目二,不修改数组找到重复的数字
    二进制中1的个数(读不懂题目怎么办)
    用两个栈实现队列
    斐波那契数列
    替换空格
    python 实现杨辉三角(依旧遗留问题)
    递归实现二分查找
  • 原文地址:https://www.cnblogs.com/yjt1993/p/11207766.html
Copyright © 2011-2022 走看看