Hadoop學習Day8---HDFS 的shell 操作

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   使用   java   ar   for   

一、HDFS的shell命令簡介

我們都知道HDFS 是存取資料的Distributed File System,那麼對HDFS 的操作,就是檔案系統的基本操作,比如檔案的建立、修改、刪除、修改許可權等,檔案夾的建立、刪除、重新命名等。對HDFS 的操作命令類似於lLinux 的shell 對檔案的操作,如ls、mkdir、rm 等。
我們在執行HDFS的shell操作的時候,一定要確定hadoop 是正常啟動並執行,我們可以使用使用jps 命令確保看到各個hadoop 進程。
我們可以執行命令hadoop fs,來查看HDFS的shell操作的所有命令如下。
[[email protected] ~]# 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]]

 二、HDFS的shell操作命令選項

選項名稱

使用格式

含義

-ls

-ls <路徑>

查看指定路徑的目前的目錄結構

-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目的路徑>

移動到本地

-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. ls 顯示目前的目錄結構

 

 

<1>該命令選項表示查看指定路徑的目前的目錄結構,後面跟hdfs 路徑,如果圖3.1所示。

圖 3.1

我們解釋一下每一行的內容格式:
  首字母表示檔案夾(如果是“d”)還是檔案(如果是“-”);
    後面的9 位字元表示許可權;
    後面的數字或者“-”表示副本數。如果是檔案,使用數字表示副本數;檔案夾沒有副本;
    後面的“root”表示屬主;
    後面的“supergroup”表示屬組;
    後面的“0”、“ 84927175”表示檔案大小,單位是位元組;
    後面的時間表示修改時間,格式是年月日時分;
    最後一項表示檔案路徑。
可見根目錄下面有1個檔案夾、1個檔案。

<2>如果該命令選項後面沒有路徑,那麼就會訪問/user/<目前使用者>目錄。我們使用root使用者登入,因此會訪問hdfs 的/user/root 目錄,但是如果沒有這個目錄/user/root,會提示檔案不存在的錯誤3.2所示,添加該目錄後再次執行該命令3.3,3.4所示。

圖 3.2

圖 3.3

圖 3.4

 

2. -lsr 遞迴顯示目錄結構

 

 

該命令選項表示遞迴顯示當前路徑的目錄結構,後面跟hdfs 路徑。3.5 所示。

圖 3.5

顯示/user 目錄下有個root 目錄,root 目錄下有檔案hello

 

3. -du 統計目錄下各檔案大小

 

 

該命令選項顯示指定路徑下的檔案大小,單位是位元組,3.6所示。

圖 3.6

 

4. -dus 匯總統計目錄下檔案大小

 

 

該命令選項顯示指定路徑的檔案大小,單位是位元組,3.7所示。


圖3.7

請讀者比較圖3.6與圖3.7的區別,體會兩個命令選項的不同含義。

 

5. count 統計檔案(夾)數量

 

 

該命令選項顯示指定路徑下的檔案夾數量、檔案數量、檔案總大小資訊,3.8所示.。

圖 3.8

在圖4-6 中有兩條命令,下面的命令是為了佐證上面命令的正確性的。

6.  mv 移動

 

該命令選項表示移動hdfs 的檔案到指定的hdfs 目錄中。後面跟兩個路徑,第一個表示源檔案,第二個表示目的目錄。3.9所示。

圖 3.9

在圖3.9 中有三條命令,是為了體現移動前後的變化情況。

 

7. cp 複製

 

 

該命令選項表示複製hdfs 指定的檔案到指定的hdfs 目錄中。後面跟兩個路徑,第一個是被複製的檔案,第二個是目的地。,3.10所示。.

圖3.10

在圖3.10中有三條命令,是為了體現複製前後的變化情況。?

8. rm 刪除檔案/空白檔案夾

 

 

該命令選項表示刪除指定的檔案或者空目錄,3.11 所示。.

圖3.11

在圖3.11 中,前三條命令是為了體現執行前後的變化情況。第四條命令是刪除非空的“/user”目錄,操作失敗,表明不能刪除非空目錄。

 

9.  rmr 遞迴刪除

 

 

該命令選項表示遞迴刪除指定目錄下的所有子目錄和檔案,3.12 所示。

圖 3.12?

10. put 上傳檔案

 

 

該命令選項表示把linux 上的檔案複製到hdfs 中,3.12所示。.

圖 3.12

11. copyFromLocal 從本地複製到hdfs ------操作與-put 一致,不再舉例。

12. moveFromLocal 從本地移動到hdfs

 

 

該命令表示把檔案從linux 上移動到hdfs 中,3.13所示。

圖 3.13

 

13.  getmerge 合并到本地

 

 

該命令選項的含義是把hdfs 指定目錄下的所有檔案內容合并到本地linux 的檔案中,3.14所示。


圖3.14

 

14.  cat 查看檔案內容

 

 

該命令選項是查看檔案內容,3.15所示。


圖3.15

 

15. text 查看檔案內容

 

 

該命令選項可以認為作用和用法與-cat 相同,此處略。

 

16. mkdir 建立空白檔案夾

 

 

該命令選項表示建立檔案夾,後面跟的路徑是在hdfs 將要建立的檔案夾,3.16 所示。

圖3.16

17. setrep 設定副本數量

 

 

<1>該命令選項是修改已儲存檔案的副本數量,後面跟副本數量,再跟檔案路徑,3.17所示。

圖3.17

 

在圖3.17 中,我們修改了檔案/file1的副本數,由1 修改為2,意味著多了一個副本,HDFS 會自動執行檔案的複製工作,產生新的副本。

<2>如果最後的路徑表示檔案夾,那麼需要跟選項-R,表示對檔案夾中的所有檔案都修改副
本,3.18 所示


圖3.18

在圖3.18中,我們對/user/root 檔案夾進行的操作,使用了選項-R,那麼/user/root 下的檔案file2,file1 的副本數發生了改變。

<3>還有一個選項是-w,表示等待副本操作結束才退出命令,3.19所示。

圖3.19

 

18.  touchz 建立空白檔案

 

 

該命令選項是在hdfs 中建立空白檔案,3.20 所示。

圖3.20

 

19. stat 顯示檔案的統計資訊

 

該命令選項顯示檔案的一些統計資訊,3.21所示。

圖3.21

在圖3.21 中,命令選項後面可以有格式,使用引號表示。樣本中的格式“%b %n %o%r %Y”依次表示檔案大小、檔案名稱、塊大小、副本數、訪問時間.

 

20. tail 查看檔案尾部內容

 

 

該命令選項顯示檔案最後1K 位元組的內容。一般用於查看日誌。如果帶有選項-f,那麼當檔案內容變化時,也會自動顯示。3.22 所示。


圖3.22

 

21.  chmod 修改檔案許可權

 

 

<1>該命令選項的使用類似於linux 的shell 中的chmod 用法,作用是修改檔案的許可權,3.23 所示。.

圖3.23

 

<2>在圖3.23中,修改了檔案/emptyfile 的許可權。如果加上選項-R,可以對檔案夾中的所有檔案修改許可權,3.24 所示。.

圖3.24

22. chown 修改屬主

 

 

該命令選項表示修改檔案的屬主,3.25所示。

圖3.25

 

<2>中把檔案/emptyfile 的屬主由root 修改為sunddenly。也可以同時修改屬組,3.26 所示。

圖3.26

在圖3.26中,把檔案/emptyfile 的屬主和屬組都修改為itcast,如果只修改屬組,可以
使用“:sunddenly”。
如果帶有選項-R,意味著可以遞迴修改檔案夾中的所有檔案的屬主、屬組資訊。

23. chgrp 修改屬組

 

 

該命令的作用是修改檔案的屬組,該命令相當於“chown :屬組”的用法,3.27所示。

圖3.27?

24. help 協助

該命令選項會顯示協助資訊,後面跟上需要查詢的命令選項即可,4-27 所示。

圖3.28

在圖3.28 中,查詢的rm 的用法。

Hadoop學習Day8---HDFS 的shell 操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.