【问题标题】:How files or directories are getting stored in hadoop hdfs文件或目录如何存储在 hadoop hdfs 中
【发布时间】:2016-08-19 04:49:32
【问题描述】:

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

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

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

hdfs dfs -ls /hadoop/dir1/

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

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

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

(我使用的是 hadoop 2.6.0)

【问题讨论】:

    标签: hadoop hdfs hadoop2


    【解决方案1】:

    HDFS 文件系统是一个分布式存储系统,其中存储位置是虚拟的,并使用来自所有 DataNode 的磁盘空间创建。在安装 hadoop 时,您必须为 dfs.namenode.name.dirdfs.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

    【讨论】:

      【解决方案2】:

      当我们在本地文件系统中创建文件时,即在其中创建目录 例如:$/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 /mike90 这里 '/home/gopalkrishna/file1.log' 指的是 pwd(当前工作目录) '/mike90' 指的是 hdfs 中的目录。通过点击 $hdfs dfs -ls /mike90 文件列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-28
        • 1970-01-01
        • 1970-01-01
        • 2018-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多