Hadoop學習(四) FileSystem Shell命令詳解


       FileSystem Shell中大多數命令都和unix命令相同,只是兩者之間的解釋不同,如果你對unix命令有基本的了解,那么對於FileSystem Shell的命令,你將會感到很親切。

appendToFile

語法:hdfs dfs -appendToFile <localsrc> ... <dst>
解釋:將本地文件系統中的一個文件或多個文件添加到目標文件系統中,也可以從stdin讀取input文件添加到目標文件系統中
范例:
1 $ hdfs dfs -appendToFile localfile /user/hadoop/hadoopfile
2 $ hdfs dfs -appendToFile localfile1 localfile2 /user/hadoop/hadoopfile
3 $ hdfs dfs -appendToFile localfile hdfs://nn.example.com/hadoop/hadoopfile
4 $ hdfs dfs -appendToFile - hdfs://nn.example.com/hadoop/hadoopfile Reads the input from stdin
返回結果:
成功返回0,錯誤返回1

cat

語法:hdfs dfs -cat URI [URI ...]
解釋:打印資源路徑到控制台
范例:
1 $ hdfs dfs -cat hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
2 $ hdfs dfs -cat file:///file3 /user/hadoop/file4
返回結果:
成功返回0,錯誤返回1

chgrp

語法:hdfs dfs -chgrp [-R] GROUP URI [URI ...]
解釋:改 變文件之間的組關系,操作者必須是文件所有者或者至少是超級用戶
范例:
1 $ hdfs df -chgrp bigdata hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
2 $ hdfs df -chgrp bigdata file:///file3 /user/hadoop/file4
返回結果:無

chmod

語法:hdfs dfs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
解釋:變更文件權限,-R參數將文件及其所有子文件權限變更,操作者必須是文件所有者或者至少是超級用戶
范例:
1 #g+w表示給組划分權限,a+w表示給所有用戶和組划分權限,u+w表示給用戶划分權限
2 $ hdfs dfs -chmod g+w hdfs://nn1.example.com/file1
3 $ hdfs dfs -chmod -R g+w hdfs://nn1.example.com/file2
返回結果:無

chown

語法:hdfs dfs -chown [-R] [OWNER][:[GROUP]] URI [URI ]
解釋:變更文件所有者,操作者必須是超級用戶
范例:
1 $ hdfs dfs -chown -R newOwner:newOwner_group hdfs://nn1.example.com/file1
返回結果:無

copyFromLocal

語法:hdfs dfs -copyFromLocal <localsrc> URI
解釋:該命令與put命令類似,但是該命令僅限於本地文件的添加
范例:
1 $ hdfs dfs -copyFromLocal localfile /user/hadoop/hadoopfile
返回結果:無

copyToLocal

語法:hdfs dfs -copyToLocal [-ignorecrc] [-crc] URI <localdst>
解釋:該命令與get命令類似,但是該命令僅限於本地文件的獲取
范例:
1 $ hdfs dfs -copyFromLocal /user/hadoop/hadoopfile localfile
返回結果:無

count

語法:hdfs dfs -count [-q] [-h] <paths>
解釋:計算目錄、文件、以及字節數,輸出的列為DIR_COUNT, FILE_COUNT, CONTENT_SIZE FILE_NAME
  • -q:輸出列QUOTA, REMAINING_QUATA、SPACE_QUOTA、REMAINING_SPACE_QUOTA、DIR_COUNT、FILE_COUNT、CONTENT_SIZE、FILE_NAME
  • -h:可讀格式的大小
范例:
1 $ hdfs dfs -count hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
2 $ hdfs dfs -count -q hdfs://nn1.example.com/file1
3 $ hdfs dfs -count -q -h hdfs://nn1.example.com/file1
返回結果:
成功返回0,錯誤返回-1

cp

語法:hdfs dfs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
解釋:從源到目的地復制文件。此命令允許多個源,以及在這種情況下,目的地必須是一個目錄。 
范例:
1 $ hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2
2 $ hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
返回結果:
成功返回0,錯誤返回-1

du

語法:hdfs dfs -du [-s] [-h] URI [URI ...]
解釋:顯示給定目錄中的文件和目錄的大小或文件的長度,以防其只是一個文件
  • -s:該選項將導致顯示文件長度的匯總,而不是單個文件。
  • -h:選項將格式中的“可讀的”時尚大小文件(如64.0m代替67108864)
范例:
1 $ hdfs dfs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://nn.example.com/user/hadoop/dir1
返回結果:
成功返回0,錯誤返回-1

expunge

語法:hdfs dfs -expunge
解釋:清空垃圾
范例:
1 $ hdfs dfs -expunge
返回結果:無

get

語法:hdfs dfs -get [-ignorecrc] [-crc] <src> <localdst>
解釋:復制文件到本地文件系統,
范例:
1 $ hdfs dfs -get /user/hadoop/file localfile
2 $ hdfs dfs -get hdfs://nn.example.com/user/hadoop/file localfile
返回結果:
成功返回0,錯誤返回-1

getfacl

語法:hdfs dfs -getfacl [-R] <path>
解釋:顯示訪問控制列表(ACL)的文件和目錄。如果一個目錄的默認ACL,然后getfacl也顯示默認的ACL。 
  • R:列出所有文件和目錄遞歸ACL。
  • path:文件或目錄列表。
范例:
1 $ hdfs dfs -getfacl /file
2 $ hdfs dfs -getfacl -R /dir
返回結果:
成功返回0,錯誤返回非0

getfattr

語法:hdfs dfs -getfattr [-R] -n name | -d [-e en] <path>
解釋:顯示文件或目錄的擴展屬性名稱和值(如果有的話)
  • -R:遞歸列出所有文件和目錄的屬性。
  • -n name:轉儲命名擴展屬性值。
  • -d:轉儲所有擴展屬性的價值與路徑。
  • -e encoding:檢索后編碼值。有效的編碼是“文本”、“妖術”,和“Base64”。編碼值為文本字符串括在雙引號,編碼值為十六進制和Base64是前綴0x 0。
  • path:文件或目錄。 
范例:
1 $ hdfs dfs -getfattr -d /file
2 $ hdfs dfs -getfattr -R -n user.myAttr /dir
返回結果:
成功返回0,錯誤返回非0

getmerge

語法:hdfs dfs -getmerge <src> <localdst> [addnl]
解釋:合並源目錄文件內容,並將合並結果輸出到本地文件
范例:
1 $ hdfs dfs -getmerge hdfs://nn1.example.com/file1 localfile
返回結果:無

ls

語法:hdfs dfs -ls [-R] <args>
解釋:列表展示目錄下的所有文件,-R表示遞歸展示
范例:
1 $ hdfs dfs -ls /user/hadoop/file1
返回結果:
成功返回0,錯誤返回-1

lsr

語法:hdfs dfs -lsr <args>
解釋: 遞歸展示 目錄下的所有文件
范例:
1 $ hdfs dfs -lsr /user/hadoop/file1
返回結果:
成功返回0,錯誤返回-1

mkdir

語法:hdfs dfs -mkdir [-p] <paths>
解釋:創建文件
范例:
1 $ hdfs dfs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
2 $ hdfs dfs -mkdir hdfs://nn1.example.com/user/hadoop/dir hdfs://nn2.example.com/user/hadoop/dir
返回結果:

moveFromLocal

語法:hdfs dfs -moveFromLocal <localsrc> <dst>
解釋:該命令與put類似,不同之處是本地文件被復制后會被刪除
范例:
1 $ hdfs dfs -moveFromLocal localfile hdfs://nn1.example.com/file1
返回結果:無

moveToLocal

語法:hdfs dfs -moveToLocal [-crc] <src> <dst>
解釋:移動文件到本地文件系統
范例:
1 $ hdfs dfs -moveToLocal hdfs://nn1.example.com/file1 localfile
返回結果:無

mv

語法:hdfs dfs -mv URI [URI ...] <dest>
解釋:移動文件到目標目錄下
范例:
1 $ hdfs dfs -mv /user/hadoop/file1 /user/hadoop/file2
2 $ hdfs dfs -mv hdfs://nn.example.com/file1 hdfs://nn.example.com/file2 hdfs://nn.example.com/file3 hdfs://nn.example.com/dir1
返回結果:
成功返回0,錯誤返回-1

put

語法:hdfs dfs -put <localsrc> ... <dst>
解釋:復制單個或多個本地資源到目標文件系統。另外從stdin讀取輸入並寫入到目標文件系統。 
范例:
1 $ hdfs dfs -put localfile /user/hadoop/hadoopfile
2 $ hdfs dfs -put localfile1 localfile2 /user/hadoop/hadoopdir
3 $ hdfs dfs -put localfile hdfs://nn.example.com/hadoop/hadoopfile
4 $ hdfs dfs -put - hdfs://nn.example.com/hadoop/hadoopfile Reads the input from stdin.
返回結果:
成功返回0,錯誤返回-1

rm

語法:hdfs dfs -rm [-f] [-r|-R] [-skipTrash] URI [URI ...]
解釋:刪除資源
范例:
1 $ hdfs dfs -rm hdfs://nn.example.com/file /user/hadoop/emptydir
返回結果:
成功返回0,錯誤返回-1

rmr

語法:hdfs dfs -rmr [-skipTrash] URI [URI ...]
解釋:遞歸刪除資源,rmr取代-rm -r
范例:
1 $ hdfs dfs -rmr hdfs://nn.example.com/file /user/hadoop/emptydir
返回結果:
成功返回0,錯誤返回-1

setfcal

語法:hdfs dfs -setfacl [-R] [-b|-k -m|-x <acl_spec> <path>]|[--set <acl_spec> <path>]
解釋:設置文件和目錄的訪問控制列表
范例:
1 $ hdfs dfs -setfacl -m user:hadoop:rw-/file
2 $ hdfs dfs -setfacl -x user:hadoop /file
3 $ hdfs dfs -setfacl -b /file
4 $ hdfs dfs -setfacl -k /dir
5 $ hdfs dfs -setfacl --set user::rw-,user:hadoop:rw-,group::r--,other::r--/file
6 $ hdfs dfs -setfacl -R -m user:hadoop:r-x /dir
7 $ hdfs dfs -setfacl -m default:user:hadoop:r-x /dir
返回結果:
成功返回0,錯誤返回非0

setrep

語法:hdfs dfs -setrep [-R] [-w] <numReplicas> <path>
解釋:更改文件的復制因素。如果路徑是一個目錄,則該命令遞歸地更改根目錄樹下所有文件的復制因素.
范例:
1 $ hdfs dfs -setrep -w 3/user/hadoop/dir1
返回結果:
成功返回0,錯誤返回-1

stat

語法:hdfs dfs -stat URI [URI ...]
解釋:返回路徑上的統計信息
范例:
1 $ hdfs dfs -stat path
返回結果:
成功返回0,錯誤返回-1

tail

語法: hdfs dfs -tail [-f] URI
解釋:將文件的最后一千字節顯示到stdout。
范例:
1 $ hdfs dfs -tail pathname
返回結果:
成功返回0,錯誤返回-1

test

語法:hdfs dfs -test -[ezd] URI
解釋:檢查資源
  • -e:將檢查文件是否存在,如果為true,則返回0。
  • -z:將檢查文件是否為零長度,如果為真則返回0。
  • -d:將檢查路徑是否為目錄,如果為true則返回0。
范例:
1 $ hdfs dfs -test -e filename
返回結果:
成功返回0,錯誤返回-1

text

語法:hdfs dfs -text <src>
解釋:獲取源文件並以文本格式輸出文件。 允許的格式是zip和TextRecordInputStream。
范例:
1 $ hdfs dfs -text src
返回結果:無

touchz

語法:hdfs dfs -touchz URI [URI ...]
解釋:創建空文件
范例:
1 $ hdfs dfs -touchz pathname
返回結果:
成功返回0,錯誤返回-1
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM