fsimage hdfs的内容

uujelgoq  于 2021-06-04  发布在  Hadoop
关注(0)|答案(3)|浏览(364)

我有一个关于fsimage中的元数据是关于什么的问题。我了解到文件系统名称空间的所有变化,例如文件重命名、权限更改、文件创建、块分配都在fsimage中。但是区块位置数据呢?它是否也包含有关块存储在何处(在哪个数据节点上)的信息?我从这个来源得到:http://bradhedlund.com/2011/09/10/understanding-hadoop-clusters-and-the-network/ 存储块的元数据是由数据节点的块报告构建的。这是真的吗?所以fsimage不包含关于块位置的信息?

yx2lnoni

yx2lnoni1#

namenode维护两种类型的数据
块位置数据:由于文件被切块,nn应该知道哪一块在哪里。这些数据保存在内存中,从不在磁盘上持久化,dns定期与nn对话并共享blockreport。
文件系统(元数据):如文件系统层次结构、权限等。此信息将保留到磁盘
当namenodes启动时,它从fsimage加载文件系统的“快照”,并将编辑日志应用到它上,在这个过程之后,我们得到一个新的快照。从这一点上,namenode可以接受来自客户端/dns的文件系统请求

0s7z1bwu

0s7z1bwu2#

是的,据我所知,fsimage不包含任何有关块的信息。这些信息由数据节点存储。namenode从datanodes启动时获取此信息。

jfewjypa

jfewjypa3#

hadoop提供了一个将fsimage文件转换为可读格式的工具。http://hadoop.apache.org/docs/r2.3.0/hadoop-project-dist/hadoop-hdfs/hdfsimageviewer.html
样本输出:

bin/hdfs oiv -i fsimagedemo -p Indented -o fsimage.txt

   FSImage
     ImageVersion = -19
     NamespaceID = 2109123098
     GenerationStamp = 1003
     INodes [NumInodes = 12]
       Inode
         INodePath =
         Replication = 0
         ModificationTime = 2009-03-16 14:16
         AccessTime = 1969-12-31 16:00
         BlockSize = 0
         Blocks [NumBlocks = -1]
         NSQuota = 2147483647
         DSQuota = -1
         Permissions
           Username = theuser
           GroupName = supergroup
           PermString = rwxr-xr-x
   ...remaining output omitted...

相关问题