2016-08-19 152 views
1

我在HDFS使用以下命令如何文件或目录获得存储在Hadoop的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)

回答

4

HDFS文件系统是一个分布式存储系统,其中所述存储位置是虚拟并使用从所有的DataNodes磁盘空间中创建。在安装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

相关问题