大数据培训新三板挂牌机构 股票代码:837906 | EN CN
异常解决方案—NameNode 宕机读写测试
异常解决方案—NameNode 宕机切换实验
异常解决方案—Data Node 配置
异常解决方案—Backup Node配置
异常解决方案—NameNode配置
异常解决方案—6.5.1异常情况分析
安装及配置
5NameNode安装及配置以及6BackupNode安装及配置
6.4.4虚拟机集群架设
6.4.3安装JDK
3.配置操作系统
2.创建虚拟机与安装操作系统
6.4构建实验环境
实验方案说明
故障切换机制
日志池(journal spool)机制
元数据操作情景分——BackupNode更新磁盘上的日志文件
元数据操作情景分——NameNode通过日志输出流......
元数据操作情景分——NameNode将日志写入日志文件
元数据操作情景分——NameNode更新内存镜像
元数据操作情景分——客户端执行命令流程
元数据操作情景分
Hadoop的Backup Node方案——运行机制分析(5)
Hadoop的Backup Node方案——运行机制分析(4)
Hadoop的Backup Node方案——运行机制分析(3)
Hadoop的Backup Node方案——运行机制分析(2)
Hadoop的Backup Node方案——运行机制分析(1)
Hadoop的Backup Node方案——系统架构
Hadoop的Backup Node方案—Backup Node 概述
元数据可靠性机制以及使用说明
Checkpoint 过程情景分析
元数据更新及日志写入情景分析
NameNode启动加载元数据情景分析
Hadoop的元数据备份机制的进行分析
元数据应用场景分析
Format情景分析
磁盘元数据文件
HDFS之代码分析——元数据结构
HDFS之内存元数据结构
什么是HDFS的元数据
Hadoop中DRDB方案和AvatarNode方案
Hadoop中常用各方案的对比
Hadoop的BackupNode方案
Hadoop的CheckpointNode方案
Hadoop的SecondaryNameNode方案
Hadoop的元数据备份方案
影响HDFS可用性的几个因素
什么是高可用性? 详细解析
HDFS系统架构简介
如何安装和配置Hadoop集群
如何在Windows下安装Hadoop
在MacOSX上安装与配置Hadoop
Linux下安装Hadoop的步骤
Hadoop的集群安全策略介绍
Hive的数据管理介绍
HBase的数据管理介绍
HDFS的数据管理介绍
Hadoop计算模型之 MapReduce 简介
Hadoop于分布式开发
Hadoop体系结构介绍
Hadoop的项目结构详解
一文读懂Hadoop

Hadoop的元数据备份机制的进行分析

于2018-01-15由小牛君创建

分享到:


Hadoop 元数据备份机制相对比较简单,下面我们结合代码,对其运行机制进行分析。新旧版本中 name.dir的名称。我们采用的源码版本为0.21.0,该版本通过hdfs-site.xml中的元数据备份目录项dfs.namenode.name.dir和dfs.namenode.edits.dir来配置多个元数据保存目录,老版本hdfs-site.xml中的元数据备份目录项名字有所不同,为dfs.name.dir以及dfs.name.edits.dir。

package org.apache.hadoop.hdfs;

HdfsConfiguration.java

private static void addDeprecatedKeys() {

……

deprecate("dfs.name.dir",

DFSConfigKeys.DFS_NAMENODE_NAME_DIR_KEY);

……

deprecate("dfs.name.edits.dir",DFSConfigKeys.DFS_NAMENODE_EDITS_DI

R_KEY);

……

}

元数据备份目录项的默认配置保存在hdfs-default.xml中,如果需要修改元数据备份目录项,可以从hdfs-default.xml中将相应的选项复制到hdfs-site.xml中进行配置,hdfs-default.xml中的选项包括:dfs.namenode.name.dir:用来指明Fsimage的保存路径,默认值是file://${hadoop.tmp.dir}/dfs/name,路径之间使用“,”进行分隔。dfs.namenode.edits.dir:用来指明Edits的保存路径,其默认路径是dfs.namenode.name.dir,也就是说,如果不配置dfs.namenode.edits.dir,HDFS将选择dfs.namenode.name.dir来保存Edits,路径之间同样使用“,”进行分隔。代码如下所示。

hdfs-default.xml

<property>

<name>dfs.namenode.name.dir</name>

<value>错误! 超链接引用无效。>

<description>Determines where on the local filesystem the DFS name node

should store the name table(fsimage). If this is a comma-delimited list

of directories then the name table is replicated in all of the

directories, for redundancy. </description>

</property>

<property>

<name>dfs.namenode.edits.dir</name>

<value>${dfs.namenode.name.dir}</value>

<description>Determines where on the local filesystem the DFS name node

should store the transaction (edits) file. If this is a comma-delimited list

of directories then the transaction file is replicated in all of the

directories, for redundancy. Default value is same as dfs.name.dir

</description>

</property>

元数据备份目录项主要涉及到几个场景:

(1)首先是NameNode启动时,从hdfs-site.xml的元数据备份目录项中检查最新的fsimage和edits,读取到内存进行合并,然后将fsimage写回dfs.namenode.name.dir指定的目录,并重置edits;

(2)其次是有元数据更新时,NameNode将日志记录写入dfs.namenode.edits.dir指定的目录;

(3)最后是做Checkpoint时,NameNode将Checkpoint好的fsimage写回dfs.namenode.name.dir指定的目录,并重置edits。

下面将对这几个场景进行分析。