1. 程式人生 > >Hadoop之HDFS文件操作

Hadoop之HDFS文件操作

文件操作命令 help 文件夾 利用 jpg 查看 作文 rgs fill

技術分享

摘要:Hadoop之HDFS文件操作常有兩種方式。命令行方式和JavaAPI方式。本文介紹怎樣利用這兩種方式對HDFS文件進行操作。

關鍵詞:HDFS文件 命令行 Java API

HDFS是一種分布式文件系統,為MapReduce這樣的框架下的海量數據分布式處理而設計。

Hadoop之HDFS文件操作常有兩種方式。一種是命令行方式。即Hadoop提供了一套與Linux文件命令類似的命令行工具;還有一種是JavaAPI,即利用Hadoop的Java庫,採用編程的方式操作HDFS的文件。

方式一:命令行方式

Hadoop文件操作命令形式為

hadoop fs -cmd <args>

說明:cmd是詳細的文件操作命令。<args>是一組數目可變的參數。

Hadoop最經常使用的文件操作命令,包含加入文件和文件夾、獲取文件、刪除文件等。

1 加入文件和文件夾

HDFS有一個默認工作文件夾/usr/$USER,當中$USER是你的登錄username,作者的username是root。該文件夾不能自己主動創建。須要運行mkdir命令創建。

hadoop fs -mkdir /usr/root

使用Hadoop的命令put將本地文件README.txt送到HDFS。

hadoop fs -put README.txt .

註意上面這個命令最後一個參數是句點(.),這意味著把本地文件放入到默認的工作文件夾,該命令等價於:

hadoop fs -put README.txt /user/root

使用Hadoop的ls命令。即

hadoop fs -ls

顯示結果如圖1所看到的。

技術分享

圖1 hadoop 中 ls命令Demo

2 獲取文件

獲取文件包括兩層意思。一是HDFS從本地文件裏獲取文件,即前面介紹的加入文件。二是本地文件從HDFS中獲取文件,能夠使用Hadoop的get命令。比如若本地文件沒有README.txt文件,須要從HDFS中取回,能夠運行例如以下命令。

hadoop fs -get README.txt .

或者

hadoop fs -get README.txt /usr/root/README.txt

3 刪除文件

Hadoop刪除文件命令為rm。

比如要刪除從本地文件上傳的README.txt,能夠運行例如以下命令。

hadoop fs -rm README.txt

4 檢索文件

檢索文件即查閱HDFS中的文件內容,能夠使用hadoop中的cat命令。比如要查閱README.txt的內容。能夠運行例如以下命令。

hadoop fs -cat README.txt

部分顯示結果如圖2所看到的

技術分享

圖2 hadoop中cat命令Demo

另外,hadoop的cat命令的輸出也能夠使用管道傳遞給Unix 命令的head:

hadoop fs -cat README.txt | head

Hadoop也支持tail命令查看最後一千字節。比如要查閱README.txt最後一千個字節。能夠運行例如以下命令。

hadoop fs -tail README.txt

5查閱幫助

查閱Hadoop命令幫助,能夠讓我們非常好地掌握和使用Hadoop的 命令。

我們能夠運行hadoop fs 獲取所用版本號Hadoop的一個完整命令列別,也能夠使用help來顯示某個詳細命令的使用方法及簡短描寫敘述。

比如。要了解ls命令。可運行例如以下命令。

hadoop fs -help ls

關於hadoop命令ls的描寫敘述如圖3所看到的。

技術分享

圖3 Hadoop命令ls的介紹

Resource:

1 http://www.wangluqing.com/2014/03/hadoop-hdfs-fileoperation/

2 Hadoop in Action http://www.manning.com/lam/


Hadoop之HDFS文件操作