hadoop实战随笔_0721

NameNode文件结构

最新格式化的NameNode会创建以下的目录结构:

${dfs.name.dir}/current/VERSION

      /edits

                                       /fsimage

                                       /fstime

dfs.name.dir属性是一个目录列表,是每个目录的镜像。VERSION文件是Java属性文件,其中包含运行HDFS的版本信息。


一个典型VERSION文件所包含的内容:

#web Mar 23 16:03:27 CST 2011

namespaceID=1064465394

cTime=0

storageType=NAME_NODE

layoutVersion=-18

namespaceID是文件系统的唯一标识符,当文件系统第一次格式化时便会被创建,这个标识也要求各DataNode节点和NameNode保持一致。NameNode会使用它识别新的DataNodeDataNode只有在想NameNode注册后才会获得此namespaceIDcTime属性标记了NameNode存储空间创建的时间。对于新格式化的存储空间,这里的属性值虽为0,但是只要文件系统被更新,它就会更新到一个新的时间戳上。storageType指出此存储目录包含一个NameNode的数据结构,在DataNode中它的属性值为DATA_NODE

layoutVersion是一个负的整数,定义了HDFS持久数据结构的版本。每次HDFS的布局发生改变,该版本号就会递减,在这种情况下,HDFS就需要更新升级了,因为一个新的NameNodeDataNode如果还处在旧版本上,系统就无法正常运行,各节点的版本号需要一致。


NameNode的存储目录中包含editsfsimagefstime三个文件。他们都是二进制文件,可以通过HadoopWritable对象进行序列化。


编辑日志(dedit log)及文件系统映像(filesystem image










































你可能感兴趣的:(hadoop)