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

时间:2016-08-19 04:49:32

标签: hadoop hdfs hadoop2

我使用下面的命令

在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位置是否存储了所有数据?

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

(我正在使用hadoop 2.6.0)

2 个答案:

答案 0 :(得分:4)

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 #Or

sudo -u hdfs hdfs dfsadmin -report

HTH

答案 1 :(得分:-1)

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