hadoop中 namenode的持久化

Posted zhu-lin-11211

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop中 namenode的持久化相关的知识,希望对你有一定的参考价值。

一、为什么namenode持久化

  namenode通过内存存储hdfs集群的元数据(目录结构 文件信息 块对应关系),如果内存出现问题,那么会数据丢失,需要通过持久化,把内存中的数据定期的存储在硬盘中,进而保证namenode的数据安全。

二、持久化的原理

      1、FSImage   (某一时刻  namenode镜像数据)

    默认存储位置

    /opt/install/hadoop-2.5.2/data/tmp/dfs/name

  2、EditsLog  (某一时刻后的,写日志操作)

    FSImage   会在集群格式化时,生成空的FSImage   ,后续用户的操作都会写入到EditsLog中

    每一次重启namenode时,把EditsLog和FSImage的数据在内存中合并,并生成一哥新的EditsLog,

    时间没到制定时间点或没有到事务数 FSImage时不会和EditsLog合并

    时间到制定时间点或到事务数 FSImage时会和EditsLog合并,生成新的FSImage(有数据)和新的EditsLog

   

   相关配置可以打开http://hadoop.apache.org/docs/r2.5.2/

    技术图片

    技术图片技术图片

 

 

 

        配置这些文件要在

          cd /opt/install/hadoop-2.5.2/etc/hadoop

        找到hdfs-site.xml文件添加

        

<property>
<name>dfs.namenode.name.dir </name>
<value>/opt/suns/fsimage</value>
</property>
<property>
<name>dfs.namenode.edits.dir </name>
<value>/opt/suns/editslog</value>
</property>

 

 

 

安全模式 safemode

namenode从新启动时,通过安全模式保证EditsLog和FSImage的合并,在这个过程中,只允许client进行读操作,而不能进行写操作。

 

 

以上是关于hadoop中 namenode的持久化的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop

hadoop学习之NameNade持久化和DataNode了解

SNN 合并流程

Hadoop启蒙:HDFS读写流程

Hadoop2之NameNode HA详解

hadoop中NAMENODE和DATANODE的大小