2016-08-19 126 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

相關問題