Hadoop學習筆記_5_Distributed File SystemHDFS --shell操作

來源:互聯網
上載者:User

標籤:Distributed File System   shell   hdfs   分布式   檔案系統   

Distributed File SystemHDFS--shell操作 Distributed File System[Distributed File System]概述

資料量越來越多,在一個作業系統管轄的範圍存不下了,那麼就分配到更多的作業系統管理的磁碟中,但是不方便管理和維護,因此迫切需要一種系統來管理多台機器上的檔案,這就是分布式檔案管理系統 。

Distributed File System特點:

是一種允許檔案通過網路在多台主機上分享的檔案系統,可讓多機器上的多使用者分享檔案和儲存空間。

通透性。讓實際上是通過網路來訪問檔案的動作,由程式與使用者看來,就像是訪問本地的磁碟一般。

容錯。即使系統中有某些節點離線,整體來說系統仍然可以持續運作而不會有資料損失。

 

分布式檔案管理系統很多,hdfs只是其中一種。適用於一次寫入多次查詢的情況,不支援並發寫情況,小檔案不合適。

[形象化的地理解什麼是HDFS 呢?我們可以把HDFS看做是Windows 的檔案系統。在Windows 的檔案系統維護著有一套很多層次的檔案夾目錄,這麼複雜的目錄層次是為了在檔案夾中分門別類的地存放檔案。我們經常做的操作是建立檔案夾、建立檔案、移動檔案、複製檔案、刪除檔案、編輯檔案、尋找檔案等。HDFS 與wWindows中的檔案系統類似,看到的和操作的也類似。讀者可以把HDFS 理解為分Windows 檔案系統。]

 

HDFS 的shell 操作

既然HDFS 是存取資料的Distributed File System,那麼對HDFS 的操作,就是檔案系統的基本操作,比如檔案的建立、修改、刪除、修改許可權等,檔案夾的建立、刪除、重新命名等。對HDFS 的操作命令類似於lLinux 的shell 對檔案的操作,如ls、mkdir、rm 等


1.對HDFS的操作 hadoop fs xxx

a) Hadoop fs -ls

b) Hadoop fs -lsr#遞迴顯示目錄結構


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

說明:

中的路徑是hdfs 根目錄,顯示的內容格式與linux 的命令ls –l 顯示的內容格式非常相似,現在下面解析每一行的內容格式:

首字母表示檔案夾(如果是“d”)還是檔案(如果是“-”);

後面的9 位字元表示許可權[類似於Linux];

後面的數字或者“-”表示副本數。如果是檔案,使用數字表示副本數;檔案夾沒有副本;

後面的“root”表示屬主;

後面的“supergroup”表示屬組;

後面的“0”、“4”表示檔案大小,單位是位元組;

後面的時間表示修改時間,格式是年月日時分;

最後一項表示檔案路徑。

 

注意:

如果該命令選項後面沒有路徑,那麼就會訪問/user/<目前使用者>目錄。如:我們使用root使用者登入,因此會訪問hdfs 的/user/root 目錄.如果沒有目錄/user/root,會提示檔案不存在的錯誤.

 

a) hadoop fs -mkdir /d1建立空白檔案夾

 

b) hadoop fs -put abc /d1

如果此時再次執行hadoop fs -put abc /d1,則螢幕會顯示:


並不會預設覆蓋

 

c) hadoop fs -put abc /d2

由於d2目錄原本是不存在的,所以螢幕顯示

-rw-r--r--   1 root supergroup      37667 2014-08-07 19:58 /d2

d2乃是一個檔案

 

d) Hadoop fs -get <Hadoop> <Linux>

下載

 

e) Hadoop fs -put <Linux> <Hadoop>

hadoop fs -put install.log /d1/NewNameFromInstall.log

hadoop fs -ls /d1

顯示

Found 1 items

-rw-r--r--   1 root supergroup      37667 2014-08-07 20:05 /d1/NewNameFromInstall.log#上傳並重新命名檔案

 

f) -du 統計目錄下各檔案大小

顯示指定路徑下的檔案大小,單位是位元組

 

g) -dus 匯總統計目錄下檔案大小

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


h) -count 統計檔案(夾)數量

顯示指定路徑下的檔案夾數量、檔案數量、檔案總大小資訊


i) -mv 移動

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

 

j) -cp 複製

複製hdfs 指定的檔案到指定的hdfs 目錄中。後面跟兩個路徑,第一個是被複製的檔案,第二個是目的地。

 

k) -rm 刪除檔案/空白檔案夾

刪除指定的檔案或者空目錄,不能刪除非空目錄。

 

l) -rmr 遞迴刪除

遞迴刪除指定目錄下的所有子目錄和檔案

 

m) -copyFromLocal 從本地複製

操作與-put 一致

 

n) -moveFromLocal 從本地移動

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

 

o) getmerge 合并到本地

把hdfs 指定目錄下的所有檔案內容合并到本地linux 的檔案中,

a) -cat/-text 查看檔案內容

 

b) -setrep 設定副本數量


修改已儲存檔案的副本數量,後面跟副本數量,再跟檔案路徑

 

多了兩個副本,HDFS 會自動執行檔案的複製工作,產生新的副本。

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

hadoop fs -setrep -R 4 /d1

 

還有一個選項是-w,表示等待副本操作結束才退出命令.

hadoop fs -setrep -R -w 1 /d1

 

c) -touchz 建立空白檔案

 

d) -help 協助

顯示協助資訊,後面跟上需要查詢的命令選項即可,如:

hadoop fs -help rm

注意:該命令選項顯示的內容並非完全準確,比如查詢count 的結果就不準確,而是把所有命令選項的用法都顯示出來

 

1.執行hadoop[後面什麼也不寫],可以查看Hadoop可以支援的命令有哪些

2.執行hadoop fs[後面什麼也不寫],可以查看Hadoop HDFS可以支援的命令有哪些

 

HDFS-shell命令完整的寫法

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

作用於Hadoop fs -ls /相同

 

原理:

在安裝Hadoop時,我們曾經修改過一個core-site.xml檔案,其中

        <name>fs.default.name</name>

        <value>hdfs://hadoop:9000</value>

fs.default.name的屬性值就代表為HDFS的路徑,為hdfs://hadoop:9000

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.