1. 程式人生 > >HDFS 常用shell命令

HDFS 常用shell命令

1.shell基本格式

(1)針對HDFS的shell格式

例:

hadoop fs -ls hdfs://namenode:host/parent/child

也可以省略hdfs://namenode:host

hadoop fs -ls /parent/child

(2)針對本地檔案系統的shell格式

注:本地檔案系統指的是客戶端所在的系統。

hadoop fs -ls file:///parent/child

2.常用HDFS shell介紹

-ls

使用方法:hadoop  fs -ls [-h]  [-R]  <args> 功能:顯示檔案、目錄資訊。 例1:

例2:-R查出資料夾及其子檔案的所有資訊

例3:優化檔案大小顯示

-mkdir

使用方法:hadoop  fs -mkdir  [-p]  <paths> 功能:在 hdfs 上建立目錄,-p 表示會建立路徑中的各級父目錄。 示例:hadoop fs -mkdir  –p  /user/hadoop/dir1

-put

使用方法:hadoop  fs -put  [-f] [-p]  [ -|<localsrc1>  .. ]. <dst> 功能:將單個 src 或多個 srcs 從本地檔案系統複製到目標檔案系統。 -p:保留訪問和修改時間,所有權和許可權。 -f:覆蓋目的地(如果已經存在) 示例:hadoop fs -put  -f localfile1  localfile2  /user/hadoop/hadoopdir

-get

使用方法:hadoop fs -get [-ignorecrc] [-crc] [-p] [-f] <src> <localdst> -ignorecrc:跳過對下載檔案的 CRC 檢查。 -crc:為下載的檔案寫 CRC 校驗和。 功能:將檔案複製到本地檔案系統。 示例:hadoop fs -get  hdfs://host:port/user/hadoop/file localfile

-appendToFile

使用方法:hadoop  fs -appendToFile  <localsrc> ... <dst> 功能:追加一個檔案到已經存在的檔案末尾

注:hdfs不能進行修改,但是可以進行追加 示例:hadoop fs -appendToFile  localfile     /hadoop/hadoopfile  

-cat

使用方法:hadoop  fs -cat  [-ignoreCrc]  URI [URI ...] 功能:顯示檔案內容到 stdout 示例:hadoop fs -cat    /hadoop/hadoopfile

-tail

使用方法:hadoop  fs -tail [-f] URI 功能:將檔案的最後一千位元組內容顯示到 stdout。 -f 選項將在檔案增長時輸出附加資料。 示例:hadoop    fs    -tail     /hadoop/hadoopfile

-chgrp

使用方法:hadoop  fs -chgrp  [-R]  GROUP  URI [URI ...] 功能:更改檔案組的關聯。使用者必須是檔案的所有者,否則是超級使用者。 -R 將使改變在目錄結構下遞迴進行。 示例:hadoop fs -chgrp  othergroup  /hadoop/hadoopfile

-chmod

功能:改變檔案的許可權。使用-R 將使改變在目錄結構下遞迴進行。 示例:hadoop    fs    -chmod    666    /hadoop/hadoopfile

-chown

功能:改變檔案的擁有者。使用-R 將使改變在目錄結構下遞迴進行。 示例:hadoop    fs    -chown    someuser:somegrp    /hadoop/hadoopfile

-copyFromLocal

使用方法:hadoop  fs -copyFromLocal  <localsrc> URI

功能:從本地檔案系統中拷貝檔案到 hdfs 路徑去

示例:hadoop    fs    -copyFromLocal    /root/1.txt    /

-copyToLocal

功能:從 hdfs 拷貝到本地 示例:hadoop fs -copyToLocal  /aaa/jdk.tar.gz  

-cp

功能:從 hdfs 的一個路徑拷貝 hdfs 的另一個路徑 示例:  hadoop    fs    -cp    /aaa/jdk.tar.gz    /bbb/jdk.tar.gz.2

-mv

功能:在 hdfs 目錄中移動檔案 示例:  hadoop    fs    -mv    /aaa/jdk.tar.gz    /

-getmerge

功能:合併下載多個檔案 示例:比如 hdfs 的目錄  /aaa/下有多個檔案:log.1, log.2,log.3,... hadoop  fs -getmerge  /aaa/log.*     ./log.sum

-rm

功能:刪除指定的檔案。只刪除非空目錄和檔案。-r  遞迴刪除。 示例:hadoop fs -rm  -r /aaa/bbb/

-df

功能:統計檔案系統的可用空間資訊

示例:hadoop    fs     -df     -h    /

-du

功能:顯示目錄中所有檔案大小,當只指定一個檔案時,顯示此檔案的大小。

示例:hadoop fs -du  /user/hadoop/dir1

-setrep

功能:改變一個檔案的副本系數。-R  選項用於遞迴改變目錄下所有檔案的副本 係數。

注:實際中這個功能不常用,副本大小會預先定義好。 示例:hadoop fs -setrep  -w  3 -R  /user/hadoop/dir1