既然HDFS是存取數據的分佈式文件系統,那麼對HDFS的操做,就是文件系統的基本操做,好比文件的建立、修改、刪除、修改權限等,文件夾的建立、刪除、重命名等。對HDFS的操做命令相似於Linux的shell對文件的操做,如ls、mkdir、rm等。html
咱們執行如下操做的時候,必定要肯定hadoop是正常運行的,使用jps命令確保看到各個hadoop進程。linux
咱們執行命令hadoop fs,如圖4-1所示。shell
圖4-1分佈式
圖中顯示了不少命令選項信息。以上截圖不全,我在表格4-1中完整地列出了支持的命令選項。oop
選項名稱spa |
使用格式3d |
含義日誌 |
-lsorm |
-ls <路徑>htm |
查看指定路徑的當前目錄結構 |
-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 [命令選項] |
幫助 |
注意:以上表格中路徑包括hdfs中的路徑和linux中的路徑。對於容易產生歧義的地方,會特別指出「linux路徑」或者「hdfs路徑」。若是沒有明確指出,意味着是hdfs路徑。
下面咱們講述每一個命令選項的用法。
-ls 顯示當前目錄結構
該命令選項表示查看指定路徑的當前目錄結構,後面跟hdfs路徑,如圖4-1所示。
圖4-1
上圖中的路徑是hdfs根目錄,顯示的內容格式與linux的命令ls –l顯示的內容格式很是類似,下面解析每一行的內容格式:
l 首字母表示文件夾(若是是「d」)仍是文件(若是是「-」);
l 後面的9位字符表示權限;
l 後面的數字或者「-」表示副本數。若是是文件,使用數字表示副本數;文件夾沒有副本;
l 後面的「root」表示屬主;
l 後面的「supergroup」表示屬組;
l 後面的「0」、「6176」、「37645」表示文件大小,單位是字節;
l 後面的時間表示修改時間,格式是年月日時分;
l 最後一項表示文件路徑。
可見根目錄下面有四個文件夾、兩個文件。
若是該命令選項後面沒有路徑,那麼就會訪問/user/<當前用戶>目錄。咱們使用root用戶登陸,所以會訪問hdfs的/user/root目錄,如圖4-2所示。
圖4-2
若是沒有這個目錄/user/root,會提示文件不存在的錯誤。
-lsr 遞歸顯示目錄結構
該命令選項表示遞歸顯示當前路徑的目錄結構,後面跟hdfs路徑。如圖4-3所示。
圖4-3
顯示/user目錄下有個root目錄,root目錄下有文件abc。
-du 統計目錄下各文件大小
該命令選項顯示指定路徑下的文件大小,單位是字節,如圖4-4所示。
圖4-4
-dus 彙總統計目錄下文件大小
該命令選項顯示指定路徑的文件大小,單位是字節,如圖4-5所示。
圖4-5
請讀者比較圖4-4與圖4-5的區別,體會兩個命令選項的不一樣含義。
-count 統計文件(夾)數量
該命令選項顯示指定路徑下的文件夾數量、文件數量、文件總大小信息,如圖4-6所示。
圖4-6
在圖4-6中有兩條命令,下面的命令是爲了佐證上面命令的正確性的。
-mv 移動
該命令選項表示移動hdfs的文件到指定的hdfs目錄中。後面跟兩個路徑,第一個表示源文件,第二個表示目的目錄,如圖4-7所示。
圖4-7
在圖4-7中有三條命令,是爲了體現移動先後的變化狀況。
-cp 複製
該命令選項表示複製hdfs指定的文件到指定的hdfs目錄中。後面跟兩個路徑,第一個是被複制的文件,第二個是目的地,如圖4-8所示。
圖4-8
在圖4-8中有三條命令,是爲了體現複製先後的變化狀況。
-rm 刪除文件/空白文件夾
該命令選項表示刪除指定的文件或者空目錄,如圖4-9所示。
圖4-9
在圖4-9中,前三條命令是爲了體現執行先後的變化狀況。第四條命令是刪除非空的「/user/root」目錄,操做失敗,代表不能刪除非空目錄。
-rmr 遞歸刪除
該命令選項表示遞歸刪除指定目錄下的全部子目錄和文件,如圖4-10所示。
圖4-10
-put 上傳文件
該命令選項表示把linux上的文件複製到hdfs中,如圖4-11所示。
圖4-11
-copyFromLocal 從本地複製
操做與-put一致,再也不舉例。
-moveFromLocal 從本地移動
該命令表示把文件從linux上移動到hdfs中,如圖4-12所示。
圖4-12
-getmerge 合併到本地
該命令選項的含義是把hdfs指定目錄下的全部文件內容合併到本地linux的文件中,如圖4-13所示。
圖4-13
-cat 查看文件內容
該命令選項是查看文件內容,如圖4-14所示。
圖4-14
-text 查看文件內容
該命令選項能夠認爲做用和用法與-cat相同,此處略。
-mkdir 建立空白文件夾
該命令選項表示建立文件夾,後面跟的路徑是在hdfs將要建立的文件夾,如圖4-15所示。
圖4-15
-setrep 設置副本數量
該命令選項是修改已保存文件的副本數量,後面跟副本數量,再跟文件路徑,如圖4-16所示。
圖4-16
在圖4-16中,咱們修改了文件/install.log的副本數,由1修改成2,意味着多了一個副本,HDFS會自動執行文件的複製工做,產生新的副本。
若是最後的路徑表示文件夾,那麼須要跟選項-R,表示對文件夾中的全部文件都修改副本,如圖4-17所示。
圖4-17
在圖4-17中,咱們對/user文件夾進行的操做,使用了選項-R,那麼/user/root下的文件abc的副本數發生了改變。
還有一個選項是-w,表示等待副本操做結束才退出命令,如圖4-18所示。
圖4-18
請讀者本身比較以上兩圖中使用-q先後執行結果的變化狀況。
-touchz 建立空白文件
該命令選項是在hdfs中建立空白文件,如圖4-19所示。
圖4-19
-stat 顯示文件的統計信息
該命令選項顯示文件的一些統計信息,如圖4-20所示。
圖4-20
在圖4-20中,命令選項後面能夠有格式,使用引號表示。示例中的格式「%b %n %o %r %Y」依次表示文件大小、文件名稱、塊大小、副本數、訪問時間。
-tail 查看文件尾部內容
該命令選項顯示文件最後1K字節的內容。通常用於查看日誌。若是帶有選項-f,那麼當文件內容變化時,也會自動顯示,如圖4-21所示。
圖4-21
-chmod 修改文件權限
該命令選項的使用相似於linux的shell中的chmod用法,做用是修改文件的權限,如圖4-22所示。
圖4-22
在圖4-22中,修改了文件/emptyfile的權限。
若是加上選項-R,能夠對文件夾中的全部文件修改權限,如圖4-23所示。
圖4-23
-chown 修改屬主
該命令選項表示修改文件的屬主,如圖4-24所示。
圖4-24
上圖中把文件/emptyfile的屬主由root修改成itcast。
也能夠同時修改屬組,如圖4-25所示。
圖4-25
在圖4-25中,把文件/emptyfile的屬主和屬組都修改成itcast,若是隻修改屬組,可使用「:itcast」。
若是帶有選項-R,意味着能夠遞歸修改文件夾中的全部文件的屬主、屬組信息。
-chgrp 修改屬組
該命令的做用是修改文件的屬組,該命令至關於「chown :屬組」的用法,如圖4-26所示。
圖4-26
-help 幫助
該命令選項會顯示幫助信息,後面跟上須要查詢的命令選項便可,如圖4-27所示。
圖4-27
在圖4-27中,查詢的rm的用法。
該命令選項顯示的內容並不是徹底準確,好比查詢count的結果就不許確,而是把全部命令選項的用法都顯示出來,如圖4-28所示。但願新的版本之後改進。
圖4-28
讀者短期沒法掌握所有命令用法,請重點掌握ls(r)、rm(r)、mkdir、put、get的使用。
-----------------------------------------------------------------------------
來源連接:https://wenku.baidu.com/view/3406704cf01dc281e53af0f8.html