HDFS Shell是Hadoop分布式文件系統(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命令,即清空回收站。