文件或目录如何存储在 hadoop hdfs 中

Spi*_*ike 1 hadoop hdfs hadoop2

我使用以下命令在 hdfs 中创建了一个文件

hdfs dfs -touchz /hadoop/dir1/file1.txt
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令查看创建的文件

hdfs dfs -ls /hadoop/dir1/
Run Code Online (Sandbox Code Playgroud)

但是,我无法使用 linux 命令(使用 find 或 locate)找到位置本身。我在互联网上搜索并找到了以下链接。 如何访问 Hadoop HDFS 中的文件?. 它说,hdfs 是虚拟存储。在这种情况下,它如何划分哪个或需要使用多少,元数据存储在哪里

是否将我在 hdfs-site.xml 中提到的虚拟存储的 datanode 位置用于存储所有数据?

我查看了 datanode 位置,并且有可用的文件。但是我找不到与我创建的文件或文件夹相关的任何内容。

(我使用的是 hadoop 2.6.0)

dae*_*n12 5

HDFS 文件系统是一个分布式存储系统,其中存储位置是虚拟的,并使用所有 DataNode 的磁盘空间创建。安装 hadoop 时,您必须为dfs.namenode.name.dir和指定路径dfs.datanode.data.dir。这些是所有 HDFS 相关文件存储在各个节点上的位置。

将数据存储到 HDFS 时,它会存储为指定大小的块(在 Hadoop 2.X 中默认为 128MB)。当您使用hdfs dfs命令时,您将看到完整的文件,但 HDFS 在内部将这些文件存储为块。如果您检查本地文件系统上的上述路径,您将看到一堆文件,这些文件对应于您的 HDFS 上的文件。但同样,您不会将它们视为实际文件,因为它们被分成块。

检查下面提到的命令的输出,以获取有关每个 DataNode 有多少空间用于创建虚拟 HDFS 存储的更多详细信息。

hdfs dfsadmin -report #或者

sudo -u hdfs hdfs dfsadmin -report

HTH