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

How files or directories are getting stored in hadoop hdfs

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

hdfs dfs -touchz /hadoop/dir1/file1.txt

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

hdfs dfs -ls /hadoop/dir1/

但是,我无法使用 linux 命令(使用查找或定位)找到位置本身。我在互联网上搜索并找到以下 link。 How to access files in Hadoop HDFS?。它说,hdfs是虚拟存储。在那种情况下,它如何划分需要使用哪个或多少,元数据存储在哪里

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

我查看了数据节点位置,发现有可用文件。但是我找不到与我创建的文件或文件夹相关的任何内容。

(我使用的是 hadoop 2.6.0)

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

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

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

hdfs dfsadmin -report #或

sudo -u hdfs hdfs dfsadmin -report

HTH

当我们在本地文件系统中创建文件时,即 在其中创建目录 例如:$/mkdir MITHUN94** 它是进入 that(LFS) cd MITHUN90 的目录 在那个 ** 创建一个新文件作为 **$nano file1.log 。 现在在 ** hdfs 中为 ex 创建一个目录:hdfs dfs -mkdir /mike90 .Here "mike90" 指的是目录名。之后创建目录将文件从 LFS 发送到 hdfs。通过使用此命令 $hdfs dfs -copyFromLocal /home/gopalkrishna/file1.log /麦克90 这里'/home/gopalkrishna/file1.log'指的是pwd(当前工作目录) '/mike90' 指的是 hdfs 中的目录。通过点击 $hdfs dfs -ls /mike90 文件列表 .