我有一个关于fsimage中的元数据是关于什么的问题。我了解到文件系统名称空间的所有变化,例如文件重命名、权限更改、文件创建、块分配都在fsimage中。但是区块位置数据呢?它是否也包含有关块存储在何处(在哪个数据节点上)的信息?我从这个来源得到:http://bradhedlund.com/2011/09/10/understanding-hadoop-clusters-and-the-network/ 存储块的元数据是由数据节点的块报告构建的。这是真的吗?所以fsimage不包含关于块位置的信息?
3条答案
按热度按时间yx2lnoni1#
namenode维护两种类型的数据
块位置数据:由于文件被切块,nn应该知道哪一块在哪里。这些数据保存在内存中,从不在磁盘上持久化,dns定期与nn对话并共享blockreport。
文件系统(元数据):如文件系统层次结构、权限等。此信息将保留到磁盘
当namenodes启动时,它从fsimage加载文件系统的“快照”,并将编辑日志应用到它上,在这个过程之后,我们得到一个新的快照。从这一点上,namenode可以接受来自客户端/dns的文件系统请求
0s7z1bwu2#
是的,据我所知,fsimage不包含任何有关块的信息。这些信息由数据节点存储。namenode从datanodes启动时获取此信息。
jfewjypa3#
hadoop提供了一个将fsimage文件转换为可读格式的工具。http://hadoop.apache.org/docs/r2.3.0/hadoop-project-dist/hadoop-hdfs/hdfsimageviewer.html
样本输出: