首家大数据培训挂牌机构 股票代码: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

磁盘元数据文件

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

分享到:


NameNode启动时,所有的元数据是位于内存进行管理的,一旦掉电,内存中的数据将不复存在,为此,需要将内存中的元数据保存到磁盘永久存储。

磁盘元数据文件包括以下四个:

fsimage:元数据镜像文件,它存储的是某一时刻NameNode内存元数据信息,包括所有的INode信息、正在写入的文件信息以及其他的一些状态信息等;

edits:日志文件,它保存了该时刻以后元数据的操作记录;

fstime:保存了最近一次Checkpoint的时间;

VERSION:是一个标志性文件,它最后被创建,它的存在表明前三个元数据文件的创建成功。

下面我们通过一个简单的例子来查看下具体的元数据文件。

1.解压

$tarxzfhadoop-0.21.0.tar.gz

2.配置hadoop-env.sh

$cdhadoop-0.21.0

$viconf/hadoop-env.sh

在最末尾加入下面一行,配置JAVA_HOME为jdk的安装路径:

$exportJAVA_HOME=/home/blfs/hdfs/soft/jdk1.6.0_26

3.设置环境变量

$sourcebin/hadoop-config.sh

$echo$HADOOP_HOME

如果可以看到相应的路径,则说明设置成功。

4.配置元数据备份路径

$cphdfs/src/java/hdfs-default.xmlconf/hdfs-site.xml

$viconf/hdfs-site.xml

配置dfs.namenode.name.dir的value,它将作为fsimage的保存路径,可以配置多个,以“,”隔开。配置dfs.namenode.edits.dir的value,它将作为edits的保存路径,可以配置多个,以“,”隔开。本例中dfs.namenode.name.dir的value配置为/tmp/dfs/name,dfs.namenode.edits.dir的value配置为/tmp/dfs/log。如下所示。

<property>

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

<value>/tmp/dfs/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>/tmp/dfs/log</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>

5.格式化

$bin/hdfsnamenodeformat

6.检查

$ls/tmp/dfs/name/

应该有current和image两个目录。

$ls/tmp/dfs/name/current

应该有“fsimage”、“fstime”、“VERSION”三个文件。

$ls/tmp/dfs/name/image

应该有“fsimage”一个文件。

$ls/tmp/dfs/log/

应该有current和image两个目录。

$ls/tmp/dfs/log/current

应该有“edits”、“fstime”、“VERSION”三个文件。

$ls/tmp/dfs/log/image

应该有“fsimage”一个文件。

由上述例子我们可知:

fsimage和edits的保存路径可以单独设置,如果不设置edits的保存路径,那么edits默认的保存路径是fsimage的保存路径;

fsimage保存在fsimage保存路径的current目录下,edits保存在eidts保存路径的current目录下;

fsimage的保存路径以及edits的保存路径都可以设置多个,以“,”作为分隔符。

此外,fsimage文件存在两个状态,以文件名进行区分,分别是:fsimage和fsimage.ckpt。fsimage表示正常状态,fsimage.ckpt表示Checkpoint过程中,上传到NameNode的fsimage文件,Checkpoint结束时会将fsimage.ckpt重命名为fsimage。

edits也有两个状态,同样以文件名进行区分,分别是:edits和edits.new。在HDFS正常运行的过程中,元数据操作记录都会写入edits文件,当开始Checkpoint时,日志记录转而写入edits.new,而edits则作为此时刻日志的一个快照,供Checkpoint进行元数据合并,当Checkpoint结束后,会将edits.new重命名为edits。