原文來自:https://examples.javacodegeeks.com/enterPRise-java/apache-hadoop/apache-hadoop-fs-commands-example/
==========本文采用谷歌翻譯,請參照中英文學習===========
在本示例中,我們將介紹您可能需要知道的最重要的命令來處理Hadoop文件系統(FS)。我們假設以前知道Hadoop是什么以及Hadoop可以做什么? 它如何以分布式方式工作,Hadoop分布式文件系統(HDFS)是什么?這樣我們可以繼續檢查一些如何處理Hadoop文件系統的例子,以及什么是最重要的命令。 以下是兩個例子,如果你不清楚Apache Hadoop可以幫助你:
Hadoop“Hello World”示例 如何使用虛擬機設置Hadoop集群讓我們開始,如在這個例子中所說,我們將看到頂部和最常用的Hadoop文件系統(fs)命令,這將有助于管理HDFS集群中的文件和數據。
Hadoop文件系統(FS)默認提供了各種shell命令,可用于與Hadoop分布式文件系統(HDFS)或任何其他使用Hadoop Shell的支持文件系統進行交互。一些最常用的命令是曾經用于諸如創建目錄,復制文件,查看文件內容,更改文件的所有權或權限等操作。
在本節中,我們將看到最常見的Hadoop FS命令的用法和示例。
用法:
hadoop fs -mkdir <paths>示例:hadoop fs -mkdir /user/root/dir1第二行中的命令用于列出特定路徑的內容。我們將在下一小節中看到此命令。 我們可以在截圖中看到dir1被創建
使用單個命令創建多個目錄
hadoop fs -mkdir /user/root/dir1 /user/root/dir2如上例所示,要一次創建多個目錄,只需傳遞多個路徑和目錄名稱,以空格分隔。
2.2 列出目錄的內容
用法:
hadoop fs -ls <paths>示例:hadoop fs -ls /user/root/該命令類似于unix shell的ls命令。
2.3在HDFS中上傳文件
命令用于將一個或多個文件從本地系統復制到Hadoop文件系統。用法:
hadoop fs -put <local_files> ... <hdfs_path>示例:hadoop fs -put Desktop/testfile.txt /user/root/dir1/在下面的屏幕截圖中,我們將文件testfile.txt從本地文件系統的Desktop放置到目標 / user / root / dir1下的Hadoop文件系統
2.4從HDFS下載文件
將文件從HDFS下載到本地文件系統。用法:
hadoop fs -get <hdfs_paths> <local_path>示例:hadoop fs -get /user/root/dir1/testfile.txt Downloads/與put命令一樣,get命令從Hadoop文件系統獲取或下載文件到Downloads文件夾中的本地文件系統。
2.5查看文件內容
為了查看文件的內容,cat命令在Hadoop文件系統中可用。它再次類似于unix shell中可用的。以下是上載到Hadoop文件系統的文件的內容,位于路徑/ user / root / dir1 /上面的步驟中。
用法:
hadoop fs -cat <paths>示例:hadoop fs -cat /user/root/dir1/testfile.txt我們可以看到下面截圖中顯示的內容與testfile.txt中的內容相同
2.6復制文件
在Hadoop文件系統中將文件從一個地方復制到另一個地方與unix shell中的cp命令語法相同。用法:
hadoop fs -cp <source_path> ... <destination_path>示例:hadoop fs -cp /user/root/dir1/testfile.txt /user/root/dir2在將文件從源復制到目標時,我們還可以在源中提供多個文件
2.7將文件從源移動到目標
以下是在Hadoop文件系統中將文件從一個目錄移動到另一個目錄的語法和示例。用法:
hadoop fs -mv <source_path> <destination_path>示例:hadoop fs -mv /user/root/dir1/testfile.txt /user/root/dir22.8從HDFS中刪除文件或目錄
從Hadoop文件系統中刪除文件或目錄與unix shell類似。它還有兩個選項,-rm和-rm -r用法:
hadoop fs -rm <path>示例:hadoop fs -rm /user/root/dir2/testfile.txt上述命令只會刪除特定文件或目錄下的文件,只有當它是空的。 但是如果我們要刪除一個包含其他文件的目錄,我們還有一個遞歸版本的remove命令。
在情況下,我們要刪除一個包含文件的目錄,-rm將無法刪除該目錄。在這種情況下,我們可以使用recursive選項從目錄中刪除所有的文件,當它是空的刪除目錄。 下面是遞歸操作的示例:用法:
hadoop fs -rm -r <path>示例:hadoop fs -rm -r /user/root/dir22.9顯示文件的尾部
該命令與unix tail命令完全相似。用法:
hadoop fs -tail <path>示例:hadoop fs -tail /user/root/dir1/testfile.txt2.10顯示特定文件的總長度
為了檢查文件中內容的總長度,我們可以使用-du。命令如下。 如果路徑是文件的路徑,則顯示文件的長度,如果它是目錄的路徑,則顯示的內容的聚合大小顯示為包括所有文件和目錄。用法:
hadoop fs -du <path>示例:hadoop fs -du /user/root/dir1/testfile.txt2.11計數目錄和文件
此命令用于計算指定路徑下的文件和目錄數。如下面的截圖所示,輸出顯示目錄數,即2,文件數,即1,總內容大小為159字節,以及這些統計信息所屬的路徑。
用法:
hadoop fs -count <path>示例:hadoop fs -count /user/root/2.12文件系統中的空間的詳細信息
要獲取Hadoop文件系統的所有空間相關詳細信息,我們可以使用df命令。它提供有關當前安裝的文件系統使用的空間量和可用空間量的信息
用法:
hadoop fs -df <path>命令可以在沒有路徑URI或路徑URI的情況下使用,當不使用路徑URI時,它提供關于整個文件系統的信息。當提供路徑URI id時,它提供特定于路徑的信息。示例:hadoop fs -dfhadoop fs -df /user/root以下屏幕截圖顯示文件系統,文件系統大小,已用空間,可用空間和已使用百分比。
3.結論
這使我們得出了這個例子的結論。這些Hadoop文件系統命令將幫助您開始處理Hadoop生態系統中的文件和目錄。
新聞熱點
疑難解答