0

我不确定这个问题是否属于这里。如果没有,那我道歉。我正在阅读 HDFS 论文,发现一些术语很难理解。请在下面找到我的问题。

1) 根据论文,“HDFS 命名空间是文件和目录的层次结构。文件和目录在 NameNode 上由 inode 表示,它记录权限、修改和访问时间、命名空间和磁盘空间配额等属性。” 命名空间信息在 inode 中究竟意味着什么。这是否意味着文件的完整路径?因为,前面的语句说“HDFS 命名空间是文件和目录的层次结构”。

2)根据论文“NameNode维护命名空间树和文件块到DataNodes的映射(文件数据的物理位置)。” 命名空间树和命名空间是否相同?关于命名空间的定义,请参考第 1 点。命名空间树信息是如何存储的?它是否存储为 inode 的一部分,其中每个 inode 也将有一个父 inode 指针?

3) 根据论文,“HDFS 将整个命名空间保存在 RAM 中。inode 数据和属于每个文件的块列表构成了名为图像的名称系统的元数据。” 图像是否还包含命名空间?

4) 命名空间 id 有什么用?它是否用于区分两个不同的文件系统实例?

谢谢,

文卡特

4

1 回答 1

2

命名空间信息在 inode 中究竟意味着什么。这是否意味着文件的完整路径?因为,前面的语句说“HDFS 命名空间是文件和目录的层次结构

这意味着您可以像在系统上一样浏览文件(通过类似的命令hadoop dfs -ls),您将看到如下结果:/user/hadoop/myFile.txt但物理上,此文件根据您的复制因子以几个块分布在您的集群上

命名空间树和命名空间是否相同?关于命名空间的定义,请参考第 1 点。命名空间树信息是如何存储的?它是否存储为 inode 的一部分,其中每个 inode 也将有一个父 inode 指针?

当您使用类似命令在 HDFS 上复制文件时hadoop dfs -copyFrom local myfile.txt /user/hadoop/myfile.txt,文件将根据dfs.block.size值进行拆分(默认为 64MB)。然后块分布在您的数据节点(用于存储的节点)上。namenode 保存所有块的映射,以便在启动时(或使用类似的命令hadoop fsck /)验证您的数据完整性。

图像是否还包含命名空间?

对于这个我不确定,但我认为命名空间也在 RAM 中。

命名空间 id 有什么用?它是否用于区分两个不同的文件系统实例?

是的,namespace id 只是一个 ID,它确保了 datanode 数据的一致性。

我希望对您有所帮助,即使它与详尽的解释相去甚远。

于 2013-07-23T16:35:31.013 回答