HDFS文件系統:
HDFS 是存取數據的分布式文件系統,那么對 HDFS 的操作,就是文件系統的基本操作,比如文件的創建、修改、刪除、修改權限等,文件夾的創建、刪除、重命名等。對HDFS 的操作命令類似於 lLinux 的 shell 對文件的操作,如 ls、mkdir、rm 等。
我們執行以下操作的時候,一定要確定 hadoop 是正常運行的,使用 jps 命令確保看到各個hadoop進程。
我們執行命令 hadoop fs,如圖 4-1 所示
這里的命令並不是很全,下表中的命令是所有的HDFS-shell支持的命令:
選項名稱 | 使用格式 | 含義 |
-ls | -ls<路徑> | 查看指定目錄的當前目錄結構 |
-lsr | -lsr<路徑> | 遞歸查看指定路徑的目錄結構 |
-du | -du<路徑> | 統計目錄下文件大小 |
-dus | -dus<路徑> | 匯總統計目錄下文件(夾)大小 |
-count | -count[-q]<路徑> | 統計文件夾數量 |
-mv | -mv<源路徑><目的路徑> | 移動 |
-cp | -cp<源路徑><目的路徑> | 復制 |
-rm | -rm[-skipTrash]<路徑> | 刪除文件或者空白文件夾 |
-rmr | -rmr[-skipTrash]<路徑> | 遞歸刪除 |
-put | -put[多個linux上的文件><hdfs路徑> | 上傳文件 |
-copyFromLocal | -copyFromLocal<多個linux上的文件><hdfs路徑> | 從本地復制 |
-moveFromLocal | -moveFromLocal<多個linux上的文件><hdfs路徑> | 從本地移動 |
-getmerge | -getmerge<源路徑><linux路徑> | 合並到文件 |
-cat | -cat<hdfs文件內容> | 查看文件內容 |
-text | -text<hdfs文件內容> | 查看文件內容 |
-copyToLocal | -copyToLocal[-ignoreCrc][-crc][hdfs源路徑][linux目的路徑] | 從本地復制 |
-moveToLocal | -moveToLocal [-crc] <hdfs 源路徑> <linux目的路徑> | 從本地移動 |
-mkdir | -mkdir<hdfs路徑> | 創建空白文件夾 |
-setrep | -setrep[-r][-w]<副本數><路徑> | 修改副本文件 |
-touchz | -touchz<文件路徑> | 創建空白文件 |
-stat | -stat[format]<路徑> | 顯示文件統計信息 |
-tail | -tail[-f]<文件> | 查看文件尾部信息 |
-chmod | -chmod[-R]<權限模式>[路徑] | 修改權限 |
-chown | -chown[-R][屬主][:[屬組]]路徑 | 修改屬主 |
-chgrp | -chgrp[-R] 屬組名稱 路徑 | 修改屬組 |
-help | -help [命令選項] | 幫助 |
-ls 顯示當前目錄結構
查看指定路徑的當前目錄結構,后面跟hdfs路徑,如圖:
上圖中的路徑是hdfs的根目錄,顯示的文件目錄與linux的命令-ls -l顯示的內容格式非常相似,下面解析每一行的內容格式:
- 首字母表示文件夾還是文件,“d”表示文件夾,“-”表示文件;
- 后面的九位字符表示權限;
- 后面的數字或者是“-”表示副本數。如果是文件,使用數字表示副本數,文件夾沒有副本;
- 后面的root表示屬主;
- root后面的supergroup表示屬組;
- 后面的0/6176/37645表示文件的大小,單位是字節;
- 后面的時間表示修改時間,時間表示年月日時分;
- 最后一項表示文件的路徑;
注意:如果該命令選項后面沒有路徑,那么就會訪問/user/<當前用戶>目錄,比如說,我們使用的是root用戶登錄,因此會訪問/user/root/目錄,如果沒有/user/root/,會提示文件不存在的錯誤。
-lsr 遞歸的顯示目錄結構
表示遞歸的顯示當前路徑下的目錄結構,后面跟hdfs路徑,如圖:
在user/目錄下有文件abc,有個目錄root。
-du 統計目錄下各文件大小
該命令選項顯示指定路徑下的文件大小,單位是字節,如圖:
-dus匯總統計目錄下文件大小
該命令顯示指定路徑的文件大小,單位是字節,如圖:
比較-du和-dus的執行結果,-du顯示的是該路徑下所有文件的大小,-dus顯示的是該路徑下文件的總大小。