【大数据学习】第九篇-NameNode工作机制

作者: irving_yuan | 来源:发表于2019-07-05 15:04 被阅读1次

    1. NameNode与Secondary NameNode

    简述

    NameNode负责管理编辑日志(edits文件)和记录镜像(fsimage);
    NameNode在运行过程,所有的HDFS的操作都会被记录在当前edits文件中,且按照操作序号进行排序。
    SecondrayNameNode协助NameNode,在每一个checkPoint定时1小时(或一百万条操作)对历史edits文件进行合并。在合并时,snn会从nn复制全部的数据到自身。
    功能:根据edits文件和fsimage文件,就可以恢复一个hdfs的系统状态。
    注:系统中数据块的位置不存放在namenode上,而是存放在datanode上。namenode只保留块位置信息的映射表。
    具体如下图所示:


    NameNode工作机制

    checkpoint配置

    <property>
      <name>dfs.namenode.checkpoint.txns</name>
      <value>1000000</value>
      <description>操作动作次数</description>
    </property>
    
    <property>
      <name>dfs.namenode.checkpoint.check.period</name>
      <value>60</value>
      <description> 1分钟检查一次操作次数 </description>
    </property>
    

    2. 镜像文件和编辑日志文件

    文件目录

    在namenode的dfs/name目录下存放edits文件、fsimage文件、seen_xid文件。

    • edits是当前的编辑日志,每个操作都会记录,且保留操作的序号在文件名上
    • fsimage是操作的镜像存档文件
    • seen-xid是当前操作的id,对应edits文件的最后末尾数字


      data目录结构

    查看edits和fsimage

    1. oiv命令
      用于格式化并查看fsimage文件
    # hdfs -oiv -p [格式化文件类型] -i [fsimage文件] -o [输出文件位置]
    hdfs oiv -p XML -i fsimage_0000000000000000151 -o /opt/fsimage.xml
    

    输出结果包括基础配置,块信息、目录结构、文件状态等


    输出数据
    1. oev命令
      用于格式化并查看edits文件
    # 命令规则同上
    hdfs oev -p XML -i edits_0000000000000000147-0000000000000000151 -o /opt/edits.xml
    

    输出文件如下:


    edits文件

    可以看出两个操作记录Record,创建hello/world目录,删除/hello目录

    1. 滚动编辑日志
      HDFS文件系统在更新操作时,会滚动编辑日志。也可以手动执行滚动
    hdfs dfsadmin -rollEdits
    

    3. 安全模式

    HDFS的安全模式是指,客户端在该模式下只读,没有任何写操作权限。目的在于保护hdfs文件系统。

    • 何时进入安全模式?
      NameNode系统启动时,创建和载入edits和fsimage文件阶段是安全模式;
      运行过程中,hdfs检查文件副本数量低于“最小副本级别”时,进入安全模式 。刚刚格式化的hdfs系统,没有副本时不会进入安全模式

    最小副本级别指实际副本数量占配置副本数量的比例

    <property>
        <name>dfs.safemode.threshold.pct</name>
        <value>0.999f</value>
        <description>最小比例</description>
    </property>
    

    基本指令

    hdfs dfsadmin -safemode get # 获取状态
    hdfs dfsadmin -safemode enter # 进入安全模式
    hdfs dfsadmin -safemode leave # 离开安全模式
    hdfs dfsadmin -safemode wait # 等待安全模式状态
    

    相关文章

      网友评论

        本文标题:【大数据学习】第九篇-NameNode工作机制

        本文链接:https://www.haomeiwen.com/subject/xcxjhctx.html