HDFS Shell是HadoopDistributed File System(HDFS)提供的命令列工具。LindormDFS(Lindorm底層儲存,LDFS)100%相容HDFS協議,您可以通過HDFS Shell工具互動式管理LDFS中儲存的檔案,例如檔案查詢、檔案刪除、檔案許可權管理和修改檔案名稱等。本文介紹通過HDFS Shell管理LDFS時的常用命令及使用樣本。
環境配置
常用命令
資料上傳
下表為將本機資料上傳至LDFS的常用命令。
命令 | 說明 |
put | 從本地檔案系統中複製單個或多個源路徑到目標LDFS。也支援從標準輸入中讀取輸入寫入目標LDFS。 |
copyFromLocal | 限定源路徑為本地檔案,其他功能實現和put命令相同。 |
moveFromLocal | 將檔案從本地剪下到LDFS。 |
appendToFile | 從本地檔案系統追加一個或多個 |
資料處理
下表為處理LDFS中資料時的常用命令。
命令 | 說明 |
cp | 將檔案從源路徑複製到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄。 |
mv | 將檔案從源路徑移動到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄。不允許在不同的檔案系統間移動檔案。 |
chown | 改變檔案的擁有者。使用-R將使改變在目錄結構下遞迴進行。命令的使用者必須是超級使用者。 |
chgrp | 改變檔案所屬的組。使用-R將使改變在目錄結構下遞迴進行。命令的使用者必須是檔案的所有者或者超級使用者。 |
chmod | 改變檔案的許可權。使用-R將使改變在目錄結構下遞迴進行。命令的使用者必須是檔案的所有者或者超級使用者。 |
mkdir | 接受路徑指定的URL作為參數,建立這些目錄。其行為類似於Unix的 |
du | 顯示目錄中所有檔案的大小,或者當只指定一個檔案時,顯示此檔案的大小。 |
df | 查看檔案的使用方式。 |
cat | 將路徑指定檔案的內容輸出到stdout。 |
rm | 刪除指定的檔案。只刪除非空目錄和檔案。 |
ls |
|
資料下載
從LDFS下載資料到本地的常用指令如下表所示。
命令 | 說明 |
get | 複製檔案到本地檔案系統。可用-ignorecrc選項複製CRC校正失敗的檔案。使用-crc選項複製檔案以及CRC資訊。 |
getmerge | 接受一個來源目錄和一個目標檔案作為輸入,並且將來源目錄中所有的檔案串連成本地目標檔案。 |
copyToLocal | 除了限定目標路徑是一個本地檔案外,和get命令類似。 |
更多命令,可以執行help命令查看。更多內容請參考Apache HDFS Shell介紹。
樣本
實際使用時,請將範例程式碼中的${執行個體Id}
替換為Lindorm執行個體ID。
查詢目錄下面的檔案。
${HADOOP_HOME}/bin/hadoop fs -ls hdfs://${執行個體ID}/
上傳檔案。
${HADOOP_HOME}/bin/hadoop fs -put test.txt hdfs://${執行個體ID}/
下載檔案至本地。
${HADOOP_HOME}/bin/hadoop fs -get hdfs://${執行個體ID}/${filename}
其中,
${filename}
為需要下載的檔案名稱。刪除檔案。
${HADOOP_HOME}/bin/hadoop fs -rm hdfs://${執行個體ID}/${filename}
其中,
${filename}
為需要下載的檔案名稱。說明使用上述樣本刪除檔案時,檔案會被移動至
Trash
目錄下,不會被真正清除。如需徹底清除,請執行hadoop fs -expunge命令,即清空資源回收筒。