Hadoop fs命令详解
本文非原創(chuàng),轉(zhuǎn)載自http://www.superwu.cn/2013/07/31/312
另外參考:http://www.blogjava.net/changedi/archive/2013/08/12/402696.html
Hadoop框架之HDFS的shell操作
既然HDFS是存取數(shù)據(jù)的分布式文件系統(tǒng),那么對(duì)HDFS的操作,就是文件系統(tǒng)的基本操作,比如文件的創(chuàng)建、修改、刪除、修改權(quán)限等,文件夾的創(chuàng)建、刪除、重命名等。對(duì)HDFS的操作命令類似于Linux的shell對(duì)文件的操作,如ls、mkdir、rm等。
我們執(zhí)行以下操作的時(shí)候,一定要確定hadoop是正常運(yùn)行的,使用jps命令確保看到各個(gè)hadoop進(jìn)程。
?
我們執(zhí)行命令hadoop fs,如圖4-1所示。
圖4-1
圖中顯示了很多命令選項(xiàng)信息。以上截圖不全,我在表格4-1中完整地列出了支持的命令選項(xiàng)。
| 選項(xiàng)名稱 | 使用格式 | 含義 |
| -ls | -ls <路徑> | 查看指定路徑的當(dāng)前目錄結(jié)構(gòu) |
| -lsr | -lsr <路徑> | 遞歸查看指定路徑的目錄結(jié)構(gòu) |
| -du | -du <路徑> | 統(tǒng)計(jì)目錄下個(gè)文件大小 |
| -dus | -dus <路徑> | 匯總統(tǒng)計(jì)目錄下文件(夾)大小 |
| -count | -count [-q] <路徑> | 統(tǒng)計(jì)文件(夾)數(shù)量 |
| -mv | -mv <源路徑> <目的路徑> | 移動(dòng) |
| -cp | -cp <源路徑> <目的路徑> | 復(fù)制 |
| -rm | -rm [-skipTrash] <路徑> | 刪除文件/空白文件夾 |
| -rmr | -rmr [-skipTrash] <路徑> | 遞歸刪除 |
| -put | -put <多個(gè)linux上的文件> <hdfs路徑> | 上傳文件 |
| -copyFromLocal | -copyFromLocal <多個(gè)linux上的文件> <hdfs路徑> | 從本地復(fù)制 |
| -moveFromLocal | -moveFromLocal <多個(gè)linux上的文件> <hdfs路徑> | 從本地移動(dòng) |
| -getmerge | -getmerge <源路徑> <linux路徑> | 合并到本地 |
| -cat | -cat <hdfs路徑> | 查看文件內(nèi)容 |
| -text | -text <hdfs路徑> | 查看文件內(nèi)容 |
| -copyToLocal | -copyToLocal [-ignoreCrc] [-crc] [hdfs源路徑] [linux目的路徑] | 從本地復(fù)制 |
| -moveToLocal | -moveToLocal [-crc] <hdfs源路徑> <linux目的路徑> | 從本地移動(dòng) |
| -mkdir | -mkdir <hdfs路徑> | 創(chuàng)建空白文件夾 |
| -setrep | -setrep [-R] [-w] <副本數(shù)> <路徑> | 修改副本數(shù)量 |
| -touchz | -touchz <文件路徑> | 創(chuàng)建空白文件 |
| -stat | -stat [format] <路徑> | 顯示文件統(tǒng)計(jì)信息 |
| -tail | -tail [-f] <文件> | 查看文件尾部信息 |
| -chmod | -chmod [-R] <權(quán)限模式> [路徑] | 修改權(quán)限 |
| -chown | -chown [-R] [屬主][:[屬組]] 路徑 | 修改屬主 |
| -chgrp | -chgrp [-R] 屬組名稱 路徑 | 修改屬組 |
| -help | -help [命令選項(xiàng)] | 幫助 |
注意:以上表格中路徑包括hdfs中的路徑和linux中的路徑。對(duì)于容易產(chǎn)生歧義的地方,會(huì)特別指出“l(fā)inux路徑”或者“hdfs路徑”。如果沒有明確指出,意味著是hdfs路徑。
下面我們講述每個(gè)命令選項(xiàng)的用法。
-ls 顯示當(dāng)前目錄結(jié)構(gòu)
該命令選項(xiàng)表示查看指定路徑的當(dāng)前目錄結(jié)構(gòu),后面跟hdfs路徑,如圖4-1所示。
圖4-1
上圖中的路徑是hdfs根目錄,顯示的內(nèi)容格式與linux的命令ls –l顯示的內(nèi)容格式非常相似,下面解析每一行的內(nèi)容格式:
l 首字母表示文件夾(如果是“d”)還是文件(如果是“-”);
l 后面的9位字符表示權(quán)限;
l 后面的數(shù)字或者“-”表示副本數(shù)。如果是文件,使用數(shù)字表示副本數(shù);文件夾沒有副本;
l 后面的“root”表示屬主;
l 后面的“supergroup”表示屬組;
l 后面的“0”、“6176”、“37645”表示文件大小,單位是字節(jié);
l 后面的時(shí)間表示修改時(shí)間,格式是年月日時(shí)分;
l 最后一項(xiàng)表示文件路徑。
可見根目錄下面有四個(gè)文件夾、兩個(gè)文件。
如果該命令選項(xiàng)后面沒有路徑,那么就會(huì)訪問/user/<當(dāng)前用戶>目錄。我們使用root用戶登錄,因此會(huì)訪問hdfs的/user/root目錄,如圖4-2所示。
圖4-2
如果沒有這個(gè)目錄/user/root,會(huì)提示文件不存在的錯(cuò)誤。
-lsr 遞歸顯示目錄結(jié)構(gòu)
該命令選項(xiàng)表示遞歸顯示當(dāng)前路徑的目錄結(jié)構(gòu),后面跟hdfs路徑。如圖4-3所示。
圖4-3
顯示/user目錄下有個(gè)root目錄,root目錄下有文件abc。
?
-du 統(tǒng)計(jì)目錄下各文件大小
該命令選項(xiàng)顯示指定路徑下的文件大小,單位是字節(jié),如圖4-4所示。
圖4-4
-dus 匯總統(tǒng)計(jì)目錄下文件大小
該命令選項(xiàng)顯示指定路徑的文件大小,單位是字節(jié),如圖4-5所示。
圖4-5
請(qǐng)讀者比較圖4-4與圖4-5的區(qū)別,體會(huì)兩個(gè)命令選項(xiàng)的不同含義。
-count 統(tǒng)計(jì)文件(夾)數(shù)量
該命令選項(xiàng)顯示指定路徑下的文件夾數(shù)量、文件數(shù)量、文件總大小信息,如圖4-6所示。
圖4-6
在圖4-6中有兩條命令,下面的命令是為了佐證上面命令的正確性的。
-mv 移動(dòng)
該命令選項(xiàng)表示移動(dòng)hdfs的文件到指定的hdfs目錄中。后面跟兩個(gè)路徑,第一個(gè)表示源文件,第二個(gè)表示目的目錄,如圖4-7所示。
圖4-7
在圖4-7中有三條命令,是為了體現(xiàn)移動(dòng)前后的變化情況。
-cp 復(fù)制
該命令選項(xiàng)表示復(fù)制hdfs指定的文件到指定的hdfs目錄中。后面跟兩個(gè)路徑,第一個(gè)是被復(fù)制的文件,第二個(gè)是目的地,如圖4-8所示。
圖4-8
在圖4-8中有三條命令,是為了體現(xiàn)復(fù)制前后的變化情況。
-rm 刪除文件/空白文件夾
該命令選項(xiàng)表示刪除指定的文件或者空目錄,如圖4-9所示。
圖4-9
在圖4-9中,前三條命令是為了體現(xiàn)執(zhí)行前后的變化情況。第四條命令是刪除非空的“/user/root”目錄,操作失敗,表明不能刪除非空目錄。
-rmr 遞歸刪除
該命令選項(xiàng)表示遞歸刪除指定目錄下的所有子目錄和文件,如圖4-10所示。
圖4-10
-put 上傳文件
該命令選項(xiàng)表示把linux上的文件復(fù)制到hdfs中,如圖4-11所示。
圖4-11
-copyFromLocal 從本地復(fù)制
操作與-put一致,不再舉例。
-moveFromLocal 從本地移動(dòng)
該命令表示把文件從linux上移動(dòng)到hdfs中,如圖4-12所示。
圖4-12
-getmerge 合并到本地
該命令選項(xiàng)的含義是把hdfs指定目錄下的所有文件內(nèi)容合并到本地linux的文件中,如圖4-13所示。
圖4-13
-cat 查看文件內(nèi)容
該命令選項(xiàng)是查看文件內(nèi)容,如圖4-14所示。
圖4-14
-text 查看文件內(nèi)容
該命令選項(xiàng)可以認(rèn)為作用和用法與-cat相同,此處略。
-mkdir 創(chuàng)建空白文件夾
該命令選項(xiàng)表示創(chuàng)建文件夾,后面跟的路徑是在hdfs將要?jiǎng)?chuàng)建的文件夾,如圖4-15所示。
圖4-15
-setrep 設(shè)置副本數(shù)量
該命令選項(xiàng)是修改已保存文件的副本數(shù)量,后面跟副本數(shù)量,再跟文件路徑,如圖4-16所示。
圖4-16
在圖4-16中,我們修改了文件/install.log的副本數(shù),由1修改為2,意味著多了一個(gè)副本,HDFS會(huì)自動(dòng)執(zhí)行文件的復(fù)制工作,產(chǎn)生新的副本。
如果最后的路徑表示文件夾,那么需要跟選項(xiàng)-R,表示對(duì)文件夾中的所有文件都修改副本,如圖4-17所示。
圖4-17
在圖4-17中,我們對(duì)/user文件夾進(jìn)行的操作,使用了選項(xiàng)-R,那么/user/root下的文件abc的副本數(shù)發(fā)生了改變。
還有一個(gè)選項(xiàng)是-w,表示等待副本操作結(jié)束才退出命令,如圖4-18所示。
圖4-18
請(qǐng)讀者自己比較以上兩圖中使用-q前后執(zhí)行結(jié)果的變化情況。
-touchz 創(chuàng)建空白文件
該命令選項(xiàng)是在hdfs中創(chuàng)建空白文件,如圖4-19所示。
圖4-19
-stat 顯示文件的統(tǒng)計(jì)信息
該命令選項(xiàng)顯示文件的一些統(tǒng)計(jì)信息,如圖4-20所示。
圖1-20
在圖4-20中,命令選項(xiàng)后面可以有格式,使用引號(hào)表示。示例中的格式“%b %n %o %r %Y”依次表示文件大小、文件名稱、塊大小、副本數(shù)、訪問時(shí)間。
-tail 查看文件尾部內(nèi)容
該命令選項(xiàng)顯示文件最后1K字節(jié)的內(nèi)容。一般用于查看日志。如果帶有選項(xiàng)-f,那么當(dāng)文件內(nèi)容變化時(shí),也會(huì)自動(dòng)顯示,如圖4-21所示。
圖4-21
-chmod 修改文件權(quán)限
該命令選項(xiàng)的使用類似于linux的shell中的chmod用法,作用是修改文件的權(quán)限,如圖4-22所示。
圖4-22
在圖4-22中,修改了文件/emptyfile的權(quán)限。
如果加上選項(xiàng)-R,可以對(duì)文件夾中的所有文件修改權(quán)限,如圖4-23所示。
圖4-23
-chown 修改屬主
該命令選項(xiàng)表示修改文件的屬主,如圖4-24所示。
圖4-24
上圖中把文件/emptyfile的屬主由root修改為itcast。
也可以同時(shí)修改屬組,如圖4-25所示。
圖4-25
在圖4-25中,把文件/emptyfile的屬主和屬組都修改為itcast,如果只修改屬組,可以使用“:itcast”。
如果帶有選項(xiàng)-R,意味著可以遞歸修改文件夾中的所有文件的屬主、屬組信息。
-chgrp 修改屬組
該命令的作用是修改文件的屬組,該命令相當(dāng)于“chown :屬組”的用法,如圖4-26所示。
圖4-26
-help 幫助
該命令選項(xiàng)會(huì)顯示幫助信息,后面跟上需要查詢的命令選項(xiàng)即可,如圖4-27所示。
圖4-27
在圖4-27中,查詢的rm的用法。
該命令選項(xiàng)顯示的內(nèi)容并非完全準(zhǔn)確,比如查詢count的結(jié)果就不準(zhǔn)確,而是把所有命令選項(xiàng)的用法都顯示出來,如圖4-28所示。希望新的版本以后改進(jìn)。
圖4-28
轉(zhuǎn)載于:https://www.cnblogs.com/cl1234/p/3566923.html
總結(jié)
以上是生活随笔為你收集整理的Hadoop fs命令详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Contextual M
- 下一篇: 行转列问题