咱們都知道HDFS 是存取數據的分佈式文件系統,那麼對HDFS 的操做,就是文件系統的基本操做,好比文件的建立、修改、刪除、修改權限等,文件夾的建立、刪除、重命名等。對HDFS 的操做命令相似於lLinux 的shell 對文件的操做,如ls、mkdir、rm 等。
咱們在執行HDFS的shell操做的時候,必定要肯定hadoop 是正常運行的,咱們可使用使用jps 命令確保看到各個hadoop 進程。
咱們能夠執行命令hadoop fs,來查看HDFS的shell操做的全部命令以下。
[root@hadoop ~]# hadoop fs
Usage: java FsShell
[-ls <path>]
[-lsr <path>]
[-du <path>]
[-dus <path>]
[-count[-q] <path>]
[-mv <src> <dst>]
[-cp <src> <dst>]
[-rm [-skipTrash] <path>]
[-rmr [-skipTrash] <path>]
[-expunge]
[-put <localsrc> ... <dst>]
[-copyFromLocal <localsrc> ... <dst>]
[-moveFromLocal <localsrc> ... <dst>]
[-get [-ignoreCrc] [-crc] <src> <localdst>]
[-getmerge <src> <localdst> [addnl]]
[-cat <src>]
[-text <src>]
[-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>]
[-moveToLocal [-crc] <src> <localdst>]
[-mkdir <path>]
[-setrep [-R] [-w] <rep> <path/file>]
[-touchz <path>]
[-test -[ezd] <path>]
[-stat [format] <path>]
[-tail [-f] <file>]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-chgrp [-R] GROUP PATH...]
[-help [cmd]]java
選項名稱linux |
使用格式shell |
含義分佈式 |
-ls oop |
-ls <路徑> spa |
查看指定路徑的當前目錄結構3d |
-lsr 日誌 |
-lsr <路徑> orm |
遞歸查看指定路徑的目錄結構blog |
-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目的路徑> |
移動到本地 |
-setrep |
-setrep [-R] [-w] <副本數> <路徑> |
修改副本數量 |
-mkdir |
-mkdir <hdfs 路徑> |
建立空白文件夾 |
-touchz |
-touchz <文件路徑> |
建立空白文件 |
-stat |
-stat [format] <路徑> |
顯示文件統計信息 |
-tail |
-tail [-f] <文件> |
查看文件尾部信息 |
-chmod |
-chmod [-R] <權限模式> [路徑] |
修改權限 |
-chown |
-chown [-R] [屬主][:[屬組]]路徑 |
修改屬主 |
-chgrp |
-chgrp [-R] 屬組名稱 路徑 |
修改屬組 |
-help |
-help -help [命令選項] |
幫助 |
(1) 該命令選項表示查看指定路徑的當前目錄結構,後面跟hdfs 路徑,若是下圖所示
咱們解釋一下每一行的內容格式:
① 首字母表示文件夾(若是是「d」)仍是文件(若是是「-」);
② 後面的9 位字符表示權限;
③ 後面的數字或者「-」表示副本數。若是是文件,使用數字表示副本數;文件夾沒有副本;
④ 後面的「root」表示屬主;
⑤ 後面的「supergroup」表示屬組;
⑥ 後面的「0」、「 84927175」表示文件大小,單位是字節;
⑦ 後面的時間表示修改時間,格式是年月日時分;
⑧ 最後一項表示文件路徑。
可見根目錄下面有1個文件夾、1個文件。
(2) 若是該命令選項後面沒有路徑,那麼就會訪問/user/<當前用戶>目錄。咱們使用root用戶登陸,所以會訪問hdfs 的/user/root 目錄,可是若是沒有這個目錄/user/root,會提示文件不存在的錯誤如圖3.1所示,添加該目錄後再次執行該命令如圖3.2,3.3所示。
圖 3.1
圖 3.2
圖 3.3
該命令選項表示遞歸顯示當前路徑的目錄結構,後面跟hdfs 路徑。以下圖所示。
顯示/user 目錄下有個root 目錄,root 目錄下有文件hello
該命令選項顯示指定路徑下的文件大小,單位是字節,以下圖所示
該命令選項顯示指定路徑的文件大小,單位是字節,以下圖所示
該命令選項顯示指定路徑下的文件夾數量、文件數量、文件總大小信息,以下圖所示
該命令選項表示移動hdfs 的文件到指定的hdfs 目錄中。後面跟兩個路徑,第一個表示源文件,第二個表示目的目錄。以下圖所示
在上圖中有三條命令,是爲了體現移動先後的變化狀況。
該命令選項表示複製hdfs 指定的文件到指定的hdfs 目錄中。後面跟兩個路徑,第一個是被複制的文件,第二個是目的地。以下圖所示
在上圖中有三條命令,是爲了體現複製先後的變化狀況。
該命令選項表示刪除指定的文件或者空目錄,以下圖所示
在上圖 中,前三條命令是爲了體現執行先後的變化狀況。第四條命令是刪除非空的「/user」目錄,操做失敗,代表不能刪除非空目錄
該命令選項表示遞歸刪除指定目錄下的全部子目錄和文件,以下圖所示
該命令選項表示把linux 上的文件複製到hdfs 中,以下圖所示
操做與-put 一致,再也不舉例。
該命令表示把文件從linux 上移動到hdfs 中,以下圖所示
該命令選項的含義是把hdfs 指定目錄下的全部文件內容合併到本地linux 的文件中,以下圖所示
該命令選項是查看文件內容,以下圖所示
該命令選項能夠認爲做用和用法與-cat 相同,此處略。
該命令選項表示建立文件夾,後面跟的路徑是在hdfs 將要建立的文件夾,以下圖所示
(1) 該命令選項是修改已保存文件的副本數量,後面跟副本數量,再跟文件路徑,以下圖所示
在圖3.17 中,咱們修改了文件/file1的副本數,由1 修改成2,意味着多了一個副本,HDFS 會自動執行文件的複製工做,產生新的副本。
(2) 若是最後的路徑表示文件夾,那麼須要跟選項-R,表示對文件夾中的全部文件都修改副本,以下圖所示
在上圖中,咱們對/user/root 文件夾進行的操做,使用了選項-R,那麼/user/root 下的文件file2,file1 的副本數發生了改變。
(3) 還有一個選項是-w,表示等待副本操做結束才退出命令,下圖所示
該命令選項是在hdfs 中建立空白文件,以下圖 所示
該命令選項顯示文件的一些統計信息,以下圖所示
在上圖中,命令選項後面能夠有格式,使用引號表示。示例中的格式「%b %n %o%r %Y」依次表示文件大小、文件名稱、塊大小、副本數、訪問時間
該命令選項顯示文件最後1K 字節的內容。通常用於查看日誌。若是帶有選項-f,那麼當文件內容變化時,也會自動顯示。以下圖所示
(1) 該命令選項的使用相似於linux 的shell 中的chmod 用法,做用是修改文件的權限,以下圖所示
3
(2) 在圖3.23中,修改了文件/emptyfile 的權限。若是加上選項-R,能夠對文件夾中的全部文件修改權限,以下圖所示
該命令選項表示修改文件的屬主,以下圖所示
(2) 上圖中把文件/emptyfile 的屬主由root 修改成sunddenly。也能夠同時修改屬組,以下圖所示
在上圖中,把文件/emptyfile 的屬主和屬組都修改成itcast,若是隻修改屬組,可使用「:sunddenly」。若是帶有選項-R,意味着能夠遞歸修改文件夾中的全部文件的屬主、屬組信息
該命令的做用是修改文件的屬組,該命令至關於「chown :屬組」的用法,以下圖所示
該命令選項會顯示幫助信息,後面跟上須要查詢的命令選項便可,以下圖所示
在上圖中,查詢的rm 的用法