Hadoop HDFS的Shell操作執行個體

來源:互聯網
上載者:User

標籤:style   http   ar   color   使用   sp   for   java   on   

本文發表於本人部落格。

    我們知道HDFS是Hadoop的Distributed File System,那既然是檔案系統那最起碼會有管理檔案、檔案夾之類的功能吧,這個類似我們的Windows作業系統一樣的吧,建立、修改、刪除、移動、複製、修改許可權等這些操作。 那我們現在來看看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]]

這個顯示了hadoop fs支援的命令,比如(啟動hadoop服務)在終端輸入:

hadoop fs -ls /

也可以輸入:

hadoop fs -ls hdfs://hadoop-master:9000/

如果不知道具體使用那麼我們可以使用最後的一個命令[-help [cmd]],比如查看ls命令協助輸入:

hadoop fs -help ls

那麼就會輸出便於我們查看協助:

-ls <path>:     List the contents that match the specified file pattern. If                path is not specified, the contents of /user/<currentUser>                will be listed. Directory entries are of the form                         dirName (full path) <dir>                 and file entries are of the form                         fileName(full path) <r n> size                 where n is the number of replicas specified for the file                 and size is the size of the file, in bytes.

至於我們在shell下操作,我想醉常見的莫過於建立檔案夾、上傳檔案、刪除檔案檔案夾、修改許可權、查看檔案內容這幾個了,下面我來一個個說。

建立檔案夾輸入:

hadoop fs -mkdir /data

就會在根目錄建立一個data檔案夾;

可以使用下面命令查看:

hadoop fs -ls /

輸出:

Found 2 itemsdrwxr-xr-x   - hadoop supergroup          0 2014-12-15 19:00 /datadrwxr-xr-x   - hadoop supergroup          0 2014-12-10 22:26 /usr

這個格式很像linux下的shell哦,drwxr-xr-x開頭的d代表的是目錄,這個跟linux誰一樣的了,第二個字元‘-’表示副本數,此時檔案夾是沒有的因為檔案夾是邏輯結構組成的,只有檔案才有值。具體說明可以參考hadoo fs -help ls。

現在上傳一個檔案至/data下,我們使用:

hadoop fs -put ./test.txt /data/

再使用下面命令查看:

hadoop fs -ls /data

輸出:

Found 1 items-rw-r--r--   1 hadoop supergroup         33 2014-12-15 19:05 /data/test.txt

此時-rw-r--r--可以看出表示是檔案,副本數1。

那下面我們來查看一下上傳的內容是不是跟本地的一樣,我們可以使用命令:

hadoop fs -text /data/test.txt

這裡輸出不在對比了。這時我們使用了新的命令-text。查看檔案內容的命令,具體參考

hadoop fs -help text

現在我們對剛建立的/data檔案夾進行許可權修改,先看當前的許可權:

Found 2 itemsdrwxr-xr-x   - hadoop supergroup          0 2014-12-15 19:05 /datadrwxr-xr-x   - hadoop supergroup          0 2014-12-10 22:26 /usr

現在我們執行下面命令,把/data檔案夾已經起下面的所有檔案夾檔案度改為777:

hadoop fs -chmod -R 777 /data

再使用下面命令查看:

hadoop fs -lsr /

結果:

drwxrwxrwx   - hadoop supergroup          0 2014-12-15 19:05 /data-rw-rw-rw-   1 hadoop supergroup         33 2014-12-15 19:05 /data/test.txtdrwxr-xr-x   - hadoop supergroup          0 2014-12-10 22:26 /usrdrwxr-xr-x   - hadoop supergroup          0 2014-12-10 22:56 /usr/localdrwxr-xr-x   - hadoop supergroup          0 2014-12-10 22:56 /usr/local/hadoopdrwxr-xr-x   - hadoop supergroup          0 2014-12-10 22:56 /usr/local/hadoop/tmpdrwxr-xr-x   - hadoop supergroup          0 2014-12-15 18:47 /usr/local/hadoop/tmp/mapreddrwx------   - hadoop supergroup          0 2014-12-15 18:47 /usr/local/hadoop/tmp/mapred/system-rw-------   1 hadoop supergroup          4 2014-12-15 18:47 /usr/local/hadoop/tmp/mapred/system/jobtracker.info

這時候的/data的許可權已經更改了,連其檔案夾下面的檔案也更改了!不過這裡我注意到這個文字檔的話即時更改為777但是執行許可權也沒有,不知道為什麼。但是在linux是rwx的!下面我們再使用命令看看:

hadoop fs -chmod -R a+x /data

再使用:

hadoop fs -lsr /

結果就這裡不顯示了,但是還是未更改文字檔的執行許可權,還是一樣!可能真的是無法更改吧!

-rw-rw-rw-   1 hadoop supergroup         33 2014-12-15 19:05 /data/test.txt

上面幾個嘗試了,感覺就跟linux一樣了,簡單有時在調試的時候可以執行命令查看下,即將結束那就把上面建立的檔案夾刪除吧,執行:

hadoop fs -rmr /data

當然還有這個命令:

hadoop fs -rm /data/test.txt

這裡我就不說它們的區別的了,我想熟悉linxu命令的都應該知道了!

這次先到這裡。堅持記錄點點滴滴!

Hadoop 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.