介面名稱 |
功能 |
操作流程 |
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介面。 |