- Hadoop大數(shù)據(jù)技術(shù)開發(fā)實戰(zhàn)
- 張偉洋
- 1246字
- 2020-03-06 11:48:38
4.2 HDFS命令行操作
HDFS的命令行接口類似傳統(tǒng)的Shell命令,可以通過命令行接口與HDFS系統(tǒng)進行交互,從而對系統(tǒng)中的文件進行讀取、移動、創(chuàng)建等操作。
命令行接口的格式如下:

或者

上述格式中的hadoop fs和hdfs dfs為命令前綴,二者使用任何一個都可。
執(zhí)行hadoop fs或hdfs dfs命令可以列出所有HDFS支持的命令列表,如下:

執(zhí)行以下命令可以列出所有HDFS支持的命令及解析:

也可以使用以下格式查看具體某一個命令的詳細解析:

下面就介紹一些HDFS系統(tǒng)的常用操作命令,若沒有配置Hadoop的系統(tǒng)PATH變量,則需要進入到$HADOOP_HOME/bin目錄中執(zhí)行。
1. ls
使用ls命令可以查看HDFS系統(tǒng)中的目錄和文件。例如,查看HDFS文件系統(tǒng)根目錄下的目錄和文件,命令如下:

遞歸列出HDFS文件系統(tǒng)根目錄下的所有目錄和文件,命令如下:

上述命令中的hadoop fs為操作HDFS系統(tǒng)的命令前綴,不可省略。該前綴也可以使用hdfs dfs代替。
2. put
使用put命令可以將本地文件上傳到HDFS系統(tǒng)中。例如,將本地當前目錄文件a.txt上傳到HDFS文件系統(tǒng)根目錄的input文件夾中,命令如下:

3. moveFromLocal
使用moveFromLocal命令可以將本地文件移動到HDFS文件系統(tǒng)中,可以一次移動多個文件。/與put命令類似,不同的是,該命令執(zhí)行后源文件將被刪除。例如,將本地文件a.txt移動到HDFS根目錄的input文件夾中,命令如下:

4. get
使用get命令可以將HDFS文件系統(tǒng)中的文件下載到本地,注意下載時的文件名不能與本地文件相同,否則會提示文件已經(jīng)存在。下載多個文件或目錄到本地時,要將本地路徑設置為文件夾。例如,將HDFS根目錄的input文件夾中的文件a.txt下載到本地當前目錄,命令如下:

將HDFS根目錄的input文件夾下載到本地當前目錄,命令如下:

需要注意的是,需要確保用戶對當前目錄有可寫權(quán)限。
5. rm
使用rm命令可以刪除HDFS系統(tǒng)中的文件或文件夾,每次可以刪除多個文件或目錄。例如,刪除HDFS根目錄的input文件夾中的文件a.txt,命令如下:

遞歸刪除HDFS根目錄的output文件夾及該文件夾下的所有內(nèi)容,命令如下:

6. mkdir
使用mkdir命令可以在HDFS系統(tǒng)中創(chuàng)建文件或目錄。例如,在HDFS根目錄下創(chuàng)建文件夾input,命令如下:

也可使用-p參數(shù)創(chuàng)建多級目錄,如果父目錄不存在,則會自動創(chuàng)建父目錄。命令如下:

7. cp
使用cp命令可以復制HDFS中的文件到另一個文件,相當于給文件重命名并保存,但源文件仍然存在。例如,將/input/a.txt復制到/input/b.txt,并保留a.txt,命令如下:

8. mv
使用mv命令可以移動HDFS文件到另一個文件,相當于給文件重命名并保存,源文件已不存在。例如,將/input/a.txt移動到/input/b.txt,命令如下:

9. appendToFile
使用appendToFile命令可以將單個或多個文件的內(nèi)容從本地系統(tǒng)追加到HDFS系統(tǒng)的文件中。例如,將本地當前目錄的文件a.txt的內(nèi)容追加到HDFS系統(tǒng)的/input/b.txt文件中,命令如下:

若需要一次追加多個本地系統(tǒng)文件的內(nèi)容,則多個文件用“空格”隔開。例如,將本地文件a.txt和b.txt的內(nèi)容追加到HDFS系統(tǒng)的/input/c.txt文件中,命令如下:

10. cat
使用cat命令可以查看并輸出HDFS系統(tǒng)中某個文件的所有內(nèi)容。例如,查看HDFS系統(tǒng)中的文件/input/a.txt的所有內(nèi)容,命令如下:

也可以同時查看并輸出HDFS中的多個文件內(nèi)容,結(jié)果會將多個文件的內(nèi)容按照順序合并輸出。例如,查看HDFS中的文件/input/a.txt和文件/input/b.txt的所有內(nèi)容,命令如下:

注意
在使用HDFS命令操作文件時,HDFS中的文件或目錄的路徑必須寫絕對路徑,而本地系統(tǒng)的文件或目錄可以寫相對路徑。
- 數(shù)據(jù)庫基礎教程(SQL Server平臺)
- SQL Server 2016 數(shù)據(jù)庫教程(第4版)
- Python數(shù)據(jù)挖掘:入門、進階與實用案例分析
- Python數(shù)據(jù)分析入門:從數(shù)據(jù)獲取到可視化
- Developing Mobile Games with Moai SDK
- 輕松學大數(shù)據(jù)挖掘:算法、場景與數(shù)據(jù)產(chǎn)品
- Python金融大數(shù)據(jù)分析(第2版)
- Modern Programming: Object Oriented Programming and Best Practices
- 企業(yè)大數(shù)據(jù)系統(tǒng)構(gòu)建實戰(zhàn):技術(shù)、架構(gòu)、實施與應用
- 智能數(shù)據(jù)分析:入門、實戰(zhàn)與平臺構(gòu)建
- Remote Usability Testing
- 改變未來的九大算法
- Kubernetes快速進階與實戰(zhàn)
- NoSQL數(shù)據(jù)庫原理(第2版·微課版)
- 數(shù)據(jù)庫原理及應用實驗:基于GaussDB的實現(xiàn)方法