基於key/value+Hadoop HDFS 設計的儲存系統的shell命令介面

來源:互聯網
上載者:User

標籤:hadoop   檔案系統   設計   儲存   

對於hadoop HDFS 中的所有命令進行解析(其中操作流程是自己的想法有不同意見歡迎大家指正)

介面名稱

功能

操作流程

get

將檔案複製到本地檔案系統 。如果指定了多個源檔案,本地目的端必須是一個目錄。

(1)按照上述機制,在Config server上的儲存引擎中逐層讀取K-V,直到獲得檔案名稱(或大檔案中繼資料資訊);

(2)根據檔案名稱(或大檔案中繼資料資訊)到相應的Data server中擷取相應的檔案(大檔案需要拼接);

(3)將擷取的檔案寫入本地檔案系統。

put

從本地檔案系統中複製檔案或目錄到目標檔案系統。

(1)按照上述章節所述,逐層解析<dst>絕對路徑,擷取目標檔案夾的key/value資料;

(2)根據章節所述規則,結合目標檔案夾的標號和源檔案的檔案名稱產生對應的key/value;

(3)根據步驟(2)產生的key/value上傳源檔案的相關資訊;

(4)上傳源檔案內容到系統中。

rm

刪除指定的檔案,只刪除非空目錄和檔案。

(1)根據上述章節所述,逐層解析到目標檔案所在的位置擷取指定檔案的key/value;

(2)根據key找到指定的檔案或目錄所在的DataNode上儲存的資訊;

(3)刪除資訊;

(4)將刪除記錄寫入edit log。

mkdir

建立目錄,會建立路徑中所有缺失的父目錄。

(1)按照上述機制,逐層解析找到父目錄,擷取標記,如果父目錄不存在則遞迴的建立路徑上的目錄;

(2)將父目錄的標記作為key的父節點欄位部分,建立新目錄。

appendToFile

添加源檔案從本地檔案系統到目標檔案系統。

(1)按照上述章節所述,逐層解析<dst>絕對路徑,擷取目標檔案夾的key/value資料;

(2)根據章節所述規則,結合目標檔案夾的標號和源檔案的檔案名稱產生對應的key/value;

(3)根據步驟(2)產生的key/value上傳源檔案的相關資訊;

(4)上傳源檔案內容到系統中。

cat

將路徑指定檔案的內容輸出到stdout。

(1)按照上述機制,逐層解析path到目標檔案,擷取檔案的key/value;

(2)根據key值在找到檔案內容輸出到stdout中;

(3)將結果在終端顯示出來。

chgrp

改變檔案和目錄的群組。

(1)按照上述機制,在Config server上的儲存引擎中逐層讀取K-V,直到獲得所操作的檔案名稱/目錄(或大檔案中繼資料資訊);

(2)修改這個K-V中的value的表示群組的欄位並重新插入新的K-V。

chmod

改變檔案和目錄的存取權限。

(1)按照上述機制,在Config server上的儲存引擎中逐層讀取K-V,直到獲得所操作的檔案名稱/目錄(或大檔案中繼資料資訊);

(2)修改這個K-V中的value的表示存取權限的欄位並重新插入新的K-V。

chown

變更檔案和目錄的擁有者。

(1)按照上述機制,在Config server上的儲存引擎中逐層讀取K-V,直到獲得所操作的檔案名稱/目錄(或大檔案中繼資料資訊);

(2)修改這個K-V中的value的表示所有者的欄位並重新插入新的K-V。

copyFromLocal

從本地檔案系統中複製檔案,和put命令相似。

操作流程參見put介面。

copToLocal

將檔案複製到本地檔案系統,和get命令類似。

操作流程參見get介面。

count

顯示由路徑確定的子目錄的個數,檔案個數,使用位元組個數,以及所有的檔案目錄名。

(1)解析到目標路徑,擷取相關的key/value;

(2)擷取value中的子目錄個數,檔案個數,使用字串等相關資訊的欄位。

cp

將檔案從源路徑複製到目標路徑。這個命令允許有多個原路徑,此時目標路徑必須是一個目錄。

(1)根據上述章節所述,逐層解析<dest>,擷取目標檔案的位置資訊;

(2)擷取源檔案的內容;

(3)逐塊複製源檔案資訊到目標檔案當中。

du

顯示檔案大小,如果path是一個目錄,則顯示該目錄中所有檔案的大小。

(1)按照上述機制,在Config server上的儲存引擎中逐層讀取K-V,直到獲得檔案名稱或目錄;

(2)如果是檔案讀取相應的key/value中,讀取value中表示檔案大小的欄位,如果是目錄則讀取標記,遞迴的查詢屬於該目錄下的所有檔案。

dus

顯示檔案的大小,但是當作用於目錄時,會顯示檔案大小之和。

(1)按照上述機制,在Config server上的儲存引擎中逐層讀取K-V,直到獲得檔案名稱或目錄;

(2)如果是檔案讀取相應的key/value中,讀取value中表示檔案大小的欄位,如果是目錄則讀取標記,遞迴的查詢屬於該目錄下的所有檔案value資訊,將value中關於檔案大小的欄位資訊相加取和。

expunge

清空資源回收筒。

(1)按照上述機制,解析到HDFS系統資源回收筒目錄下(/user/使用者名稱/.Trash/current);

(2)刪除(參考介面rm)。

getfacl

顯示檔案和目錄的存取控制清單。

(1)按照上述章節所述,逐層解析,擷取目標檔案或路徑的key/value資料;

(2)擷取value中有關的ACL的欄位資訊。

getmerge

擷取由來源目錄指定的所有檔案,將它們合并為單個檔案並寫入本地檔案系統中的LOCALDST。

(1)按照上述機制,逐層解析,擷取來源目錄檔案的標記;

(2)根據標記,在config server中尋找目錄檔案下的子檔案;

(3)建立目標檔案,將子檔案的內容依次合并到目標檔案當中;

(4)將目標檔案寫入本地檔案系統。

ls

列出目錄及檔案資訊。

(1)按照上述機制,逐層解析擷取到目標檔案或者檔案夾的標記;

(2)根據標記查詢子目錄或者檔案相關資訊;

(3)列出資訊。

lsr

迴圈列出目錄,子目錄及檔案資訊。

操作流程參見參照ls介面。

moveFromLocal

類似於put,只是本地的源在複製之後會被刪除。

(1)按照上述章節所述,逐層解析<dst>絕對路徑,擷取目標檔案夾的key/value資料;

(2)根據章節所述規則,結合目標檔案夾的標號和源檔案的檔案名稱產生對應的key/value;

(3)根據步驟(2)產生的key/value上傳源檔案的相關資訊;

(4)上傳源檔案內容到系統中;

(5)刪除本地源檔案。

moveToLocal

於get命令類似。

操作流程參見get介面。

mv

移動檔案從源地址到目標地址。

(1)按照上述機制,逐層解析<dest>絕對路徑擷取目標檔案夾的標號;

(2)逐層解析到源檔案擷取源檔案的key/value資料;

(3)更改源檔案中的key值將其中的父節點標號欄位改為目標檔案夾的標號。

rmr

遞迴刪除指定檔案和目錄。

(1)按照上述機制,逐層解析到目標檔案所在的位置擷取指定檔案的標記;

(2)採用遞迴演算法根據標記刪除指定的檔案或目錄。

setfacl

設定存取控制清單(acl)的檔案和目錄。

(1)按照上述機制,逐層解析,擷取目標檔案或路徑的key/value資料;

(2)設定value中的ACL。

setrep

改變檔案的目標副本係數。

(1)按照上述章節所述,逐層解析,擷取目標檔案的key/value資料;

(2)修改value中有關副本係數的欄位。

stat

顯示檔案中的統計資訊。

(1)按照上述章節所述,逐層解析,擷取目標檔案的key/value資料;

(2)擷取value中關於檔案的統計資訊的相關欄位。

tail

顯示目標檔案中的最後1KB資料。

(1)按照上述章節所述,逐層解析,擷取目標檔案的key/value資料;

(2)根據所得到的key/value查詢最後一塊中的1KB資訊,如果最後一塊不足1KB,則查詢倒數第二塊中資訊,拼接成1KB。返回資訊。

test

對路徑進行檢查。

(1)按照上述章節所述,對目標路徑逐層解析,擷取目標檔案的key/value資料;

(2)檢查目標檔案中的key/value中的相關欄位,以檢測檔案是否存在,大小是否為0,目錄路徑是否存在。

text

顯示檔案的常值內容,當檔案為文字檔時,等同於cat。檔案為壓縮格式時,會先解壓縮。

操作流程參見cat介面。

touchz

建立長度為0的檔案。

操作流程參見mkdir介面。


相關文章

聯繫我們

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