1. 程式人生 > 實用技巧 >[大資料]Hadoop HDFS檔案系統命令集

[大資料]Hadoop HDFS檔案系統命令集

基本格式: hadoop fs -cmd [args]

1 Query

  • 顯示命令的幫助資訊
# hadoop fs -help [cmd]
  • 檢視HDFS檔案及目錄

-ls(r) //顯示當前目錄下所有檔案

# hadoop fs -ls /

# hadoop fs -ls -R /
(遞迴檢視)
  • 顯示檔案內容 in 終端
# hadoop fs -cat <src>

# hadoop fs -text <src>
(將文字檔案或某些格式的非文字檔案通過文字格式輸出)

# hadoop fs -tail <hdfs file>
(在標準輸出中顯示檔案末尾的1KB資料)
  • 顯示檔案(目錄)儲存大小
# hadoop fs -du(s) <path>  
//顯示目錄中所有檔案大小

# hadoop fs -du -s <hdsf-path> 
//顯示hdfs對應路徑下所有檔案和的大小

# hadoop fs -du -h <hdsf-path> 
顯示hdfs對應路徑下每個資料夾和檔案的大小,檔案的大小用方便閱讀的形式表示。例如用64M代替67108864 
  • 顯示目錄中檔案數量
# hadoop fs -count[-q] <path>

2 Manipulation

2.1 上傳/移動/下載 [本地檔案系統 ~ HDFS檔案系統]

  • 上傳本地檔案到HDFS檔案系統的指定目錄中
# hadoop fs -put ./local_test.txt /hdfs_test
或
#hadoop fs -copyFromLocal ./local_test.txt /hdfs_test
  • 移動本地檔案到HDFS檔案系統的指定目錄中
# hadoop fs -moveFromLocal ./local_test.txt /hdfs_test
  • 下載HDFS檔案系統的指定目錄到本地路徑下
# hadoop fs -get /hdfs_test/test.txt .
或
# hadoop fs -getToLocal /hdfs_test/test.txt .

hadoop fs -get [-ignoreCrc] //複製檔案到本地,可忽略crc校驗
hadoop fs -getmerge //將源目錄中的所有檔案排序合併到1個本地檔案中。若檔案不存在時會自動建立;若檔案存在時會覆蓋裡面的內容
hadoop fs -getmerge -nl //加上-nl後,合併到local file中的hdfs檔案之間會空出一行

  • 移動HDFS檔案系統的指定目錄到本地檔案中
# hadoop fs -moveToLocal <hdfs-src> <localdst>

2.2 資料操縱

  • 拷貝/移動/刪除 檔案(夾)
# hadoop fs -cp /test/test.txt /test1
-cp <src-dir> <dst-dir> 
(支援同時複製多個檔案到目標目錄)
# hadoop distcp hdfs://master1:8020/foo/bar hdfs://master2:8020/bar/foo
(兩個haddop hdfs叢集之間拷貝資料)

# hadoop fs -rm /test1/test.txt [刪除檔案]
# hadoop fs -rmr /test1/ [資料夾]

# hadoop fs -mv /test/test.txt /test1
-mv <src-dir> <dest-dir>

2.3 目錄操縱

  • 建立檔案目錄
# hadoop fs -mkdir /test
(在根目錄建立一個目錄test)

X 參考文獻