1. 程式人生 > 程式設計 >Hadoop 系列(六)—— HDFS 常用 Shell 命令

Hadoop 系列(六)—— HDFS 常用 Shell 命令

1. 顯示當前目錄結構

# 顯示當前目錄結構
hadoop fs -ls  <path>
# 遞迴顯示當前目錄結構
hadoop fs -ls  -R  <path>
# 顯示根目錄下內容
hadoop fs -ls  /
複製程式碼

2. 建立目錄

# 建立目錄
hadoop fs -mkdir  <path> 
# 遞迴建立目錄
hadoop fs -mkdir -p  <path>  
複製程式碼

3. 刪除操作

# 刪除檔案
hadoop fs -rm  <path>
# 遞迴刪除目錄和檔案
hadoop fs -rm -R  <path> 
複製程式碼

4. 從本地載入檔案到 HDFS

# 二選一執行即可
hadoop fs -put  [localsrc] [dst] 
hadoop fs - copyFromLocal [localsrc] [dst] 
複製程式碼

5. 從 HDFS 匯出檔案到本地

# 二選一執行即可
hadoop fs -get  [dst] [localsrc] 
hadoop fs -copyToLocal [dst] [localsrc] 
複製程式碼

6. 檢視檔案內容

# 二選一執行即可
hadoop fs -text  <path> 
hadoop fs -cat  <path>  
複製程式碼

7. 顯示檔案的最後一千位元組

hadoop fs -tail  <path> 
# 和Linux下一樣,會持續監聽檔案內容變化 並顯示檔案的最後一千位元組
hadoop fs -tail -f  <path> 
複製程式碼

8. 拷貝檔案

hadoop fs -cp [src] [dst]
複製程式碼

9. 移動檔案

hadoop fs -mv [src] [dst] 
複製程式碼

10. 統計當前目錄下各檔案大小

  • 預設單位位元組
  • -s : 顯示所有檔案大小總和,
  • -h : 將以更友好的方式顯示檔案大小(例如 64.0m 而不是 67108864)
hadoop fs -du  <path>  
複製程式碼

11. 合併下載多個檔案

  • -nl 在每個檔案的末尾新增換行符(LF)
  • -skip-empty-file 跳過空檔案
hadoop fs -getmerge
# 示例 將HDFS上的hbase-policy.xml和hbase-site.xml檔案合併後下載到本地的/usr/test.xml
hadoop fs -getmerge -nl  /test/hbase-policy.xml /test/hbase-site.xml /usr/test.xml
複製程式碼

12. 統計檔案系統的可用空間資訊

hadoop fs -df -h /
複製程式碼

13. 更改檔案複製因子

hadoop fs -setrep [-R] [-w] <numReplicas> <path>
複製程式碼
  • 更改檔案的複製因子。如果 path 是目錄,則更改其下所有檔案的複製因子
  • -w : 請求命令是否等待複製完成
# 示例
hadoop fs -setrep -w 3 /user/hadoop/dir1
複製程式碼

14. 許可權控制

# 許可權控制和Linux上使用方式一致
# 變更檔案或目錄的所屬群組。 使用者必須是檔案的所有者或超級使用者。
hadoop fs -chgrp [-R] GROUP URI [URI ...]
# 修改檔案或目錄的訪問許可權  使用者必須是檔案的所有者或超級使用者。
hadoop fs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
# 修改檔案的擁有者  使用者必須是超級使用者。
hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]
複製程式碼

15. 檔案檢測

hadoop fs -test - [defsz]  URI
複製程式碼

可選選項:

  • -d:如果路徑是目錄,返回 0。
  • -e:如果路徑存在,則返回 0。
  • -f:如果路徑是檔案,則返回 0。
  • -s:如果路徑不為空,則返回 0。
  • -r:如果路徑存在且授予讀許可權,則返回 0。
  • -w:如果路徑存在且授予寫入許可權,則返回 0。
  • -z:如果檔案長度為零,則返回 0。
# 示例
hadoop fs -test -e filename
複製程式碼

更多大資料系列文章可以參見 GitHub 開源專案大資料入門指南