Hadoop Shell命令
Hadoop Shell命令
- FS Shell
??? cat
??? chgrp
??? chmod
??? chown
??? copyFromLocal
??? copyToLocal
??? cp
??? du
??? dus
??? expunge
??? get
??? getmerge
??? ls
??? lsr
??? mkdir
??? movefromLocal
??? mv
??? put
??? rm
??? rmr
??? setrep
??? stat
??? tail
??? test
??? text
??? touchz
FS Shell
調(diào)用文件系統(tǒng)(FS)Shell命令應(yīng)使用 bin/hadoop fs <args>的形式。 所有的的FS shell命令使用URI路徑作為參數(shù)。URI格式是scheme://authority/path。對(duì)HDFS文件系統(tǒng),scheme是hdfs,對(duì)本地文件系統(tǒng),scheme是file。其中scheme和authority參數(shù)都是可選的,如果未加指定,就會(huì)使用配置中指定的默認(rèn)scheme。一個(gè)HDFS文件或目錄比如/parent/child可以表示成hdfs://namenode:namenodeport/parent/child,或者更簡單的/parent/child(假設(shè)你配置文件中的默認(rèn)值是namenode:namenodeport)。大多數(shù)FS Shell命令的行為和對(duì)應(yīng)的Unix Shell命令類似,不同之處會(huì)在下面介紹各命令使用詳情時(shí)指出。出錯(cuò)信息會(huì)輸出到stderr,其他信息輸出到stdout。
cat
使用方法:hadoop fs -cat URI [URI …]
將路徑指定文件的內(nèi)容輸出到stdout。
示例:
- hadoop fs -cat hdfs://host1:port1/file1 hdfs://host2:port2/file2
- hadoop fs -cat file:///file3 /user/hadoop/file4
返回值:
成功返回0,失敗返回-1。
chgrp
使用方法:hadoop fs -chgrp [-R] GROUP URI [URI …] Change group association of files. With -R, make the change recursively through the directory structure. The user must be the owner of files, or else a super-user. Additional information is in the Permissions User Guide.-->
改變文件所屬的組。使用-R將使改變?cè)谀夸浗Y(jié)構(gòu)下遞歸進(jìn)行。命令的使用者必須是文件的所有者或者超級(jí)用戶。更多的信息請(qǐng)參見HDFS權(quán)限用戶指南。
chmod
使用方法:hadoop fs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI …]
改變文件的權(quán)限。使用-R將使改變?cè)谀夸浗Y(jié)構(gòu)下遞歸進(jìn)行。命令的使用者必須是文件的所有者或者超級(jí)用戶。更多的信息請(qǐng)參見HDFS權(quán)限用戶指南。
chown
使用方法:hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]
改變文件的擁有者。使用-R將使改變?cè)谀夸浗Y(jié)構(gòu)下遞歸進(jìn)行。命令的使用者必須是超級(jí)用戶。更多的信息請(qǐng)參見HDFS權(quán)限用戶指南。
copyFromLocal
使用方法:hadoop fs -copyFromLocal <localsrc> URI
除了限定源路徑是一個(gè)本地文件外,和put命令相似。
copyToLocal
使用方法:hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>
除了限定目標(biāo)路徑是一個(gè)本地文件外,和get命令類似。
cp
使用方法:hadoop fs -cp URI [URI …] <dest>
將文件從源路徑復(fù)制到目標(biāo)路徑。這個(gè)命令允許有多個(gè)源路徑,此時(shí)目標(biāo)路徑必須是一個(gè)目錄。
示例:
- hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
- hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
返回值:
成功返回0,失敗返回-1。
du
使用方法:hadoop fs -du URI [URI …]
顯示目錄中所有文件的大小,或者當(dāng)只指定一個(gè)文件時(shí),顯示此文件的大小。
示例:
hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://host:port/user/hadoop/dir1
返回值:
成功返回0,失敗返回-1。
dus
使用方法:hadoop fs -dus <args>
顯示文件的大小。
expunge
使用方法:hadoop fs -expunge
清空回收站。請(qǐng)參考HDFS設(shè)計(jì)文檔以獲取更多關(guān)于回收站特性的信息。
get
使用方法:hadoop fs -get [-ignorecrc] [-crc] <src> <localdst>
復(fù)制文件到本地文件系統(tǒng)。可用-ignorecrc選項(xiàng)復(fù)制CRC校驗(yàn)失敗的文件。使用-crc選項(xiàng)復(fù)制文件以及CRC信息。
示例:
- hadoop fs -get /user/hadoop/file localfile
- hadoop fs -get hdfs://host:port/user/hadoop/file localfile
返回值:
成功返回0,失敗返回-1。
getmerge
使用方法:hadoop fs -getmerge <src> <localdst> [addnl]
接受一個(gè)源目錄和一個(gè)目標(biāo)文件作為輸入,并且將源目錄中所有的文件連接成本地目標(biāo)文件。addnl是可選的,用于指定在每個(gè)文件結(jié)尾添加一個(gè)換行符。
ls
使用方法:hadoop fs -ls <args>
如果是文件,則按照如下格式返回文件信息:
文件名 <副本數(shù)> 文件大小 修改日期 修改時(shí)間 權(quán)限 用戶ID 組ID
如果是目錄,則返回它直接子文件的一個(gè)列表,就像在Unix中一樣。目錄返回列表的信息如下:
目錄名 <dir> 修改日期 修改時(shí)間 權(quán)限 用戶ID 組ID
示例:
hadoop fs -ls /user/hadoop/file1 /user/hadoop/file2 hdfs://host:port/user/hadoop/dir1 /nonexistentfile
返回值:
成功返回0,失敗返回-1。
lsr
使用方法:hadoop fs -lsr <args>
ls命令的遞歸版本。類似于Unix中的ls -R。
mkdir
使用方法:hadoop fs -mkdir <paths>
接受路徑指定的uri作為參數(shù),創(chuàng)建這些目錄。其行為類似于Unix的mkdir -p,它會(huì)創(chuàng)建路徑中的各級(jí)父目錄。
示例:
- hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
- hadoop fs -mkdir hdfs://host1:port1/user/hadoop/dir hdfs://host2:port2/user/hadoop/dir
返回值:
成功返回0,失敗返回-1。
movefromLocal
使用方法:dfs -moveFromLocal <src> <dst>
輸出一個(gè)”not implemented“信息。
mv
使用方法:hadoop fs -mv URI [URI …] <dest>
將文件從源路徑移動(dòng)到目標(biāo)路徑。這個(gè)命令允許有多個(gè)源路徑,此時(shí)目標(biāo)路徑必須是一個(gè)目錄。不允許在不同的文件系統(tǒng)間移動(dòng)文件。
示例:
- hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
- hadoop fs -mv hdfs://host:port/file1 hdfs://host:port/file2 hdfs://host:port/file3 hdfs://host:port/dir1
返回值:
成功返回0,失敗返回-1。
put
使用方法:hadoop fs -put <localsrc> ... <dst>
從本地文件系統(tǒng)中復(fù)制單個(gè)或多個(gè)源路徑到目標(biāo)文件系統(tǒng)。也支持從標(biāo)準(zhǔn)輸入中讀取輸入寫入目標(biāo)文件系統(tǒng)。
- hadoop fs -put localfile /user/hadoop/hadoopfile
- hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
- hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile
- hadoop fs -put - hdfs://host:port/hadoop/hadoopfile
從標(biāo)準(zhǔn)輸入中讀取輸入。
返回值:
成功返回0,失敗返回-1。
rm
使用方法:hadoop fs -rm URI [URI …]
刪除指定的文件。只刪除非空目錄和文件。請(qǐng)參考rmr命令了解遞歸刪除。
示例:
- hadoop fs -rm hdfs://host:port/file /user/hadoop/emptydir
返回值:
成功返回0,失敗返回-1。
rmr
使用方法:hadoop fs -rmr URI [URI …]
delete的遞歸版本。
示例:
- hadoop fs -rmr /user/hadoop/dir
- hadoop fs -rmr hdfs://host:port/user/hadoop/dir
返回值:
成功返回0,失敗返回-1。
setrep
使用方法:hadoop fs -setrep [-R] <path>
改變一個(gè)文件的副本系數(shù)。-R選項(xiàng)用于遞歸改變目錄下所有文件的副本系數(shù)。
示例:
- hadoop fs -setrep -w 3 -R /user/hadoop/dir1
返回值:
成功返回0,失敗返回-1。
stat
使用方法:hadoop fs -stat URI [URI …]
返回指定路徑的統(tǒng)計(jì)信息。
示例:
- hadoop fs -stat path
返回值:
成功返回0,失敗返回-1。
tail
使用方法:hadoop fs -tail [-f] URI
將文件尾部1K字節(jié)的內(nèi)容輸出到stdout。支持-f選項(xiàng),行為和Unix中一致。
示例:
- hadoop fs -tail pathname
返回值:
成功返回0,失敗返回-1。
test
使用方法:hadoop fs -test -[ezd] URI
選項(xiàng):
-e 檢查文件是否存在。如果存在則返回0。
-z 檢查文件是否是0字節(jié)。如果是則返回0。
-d 如果路徑是個(gè)目錄,則返回1,否則返回0。
示例:
- hadoop fs -test -e filename
text
使用方法:hadoop fs -text <src>
將源文件輸出為文本格式。允許的格式是zip和TextRecordInputStream。
touchz
使用方法:hadoop fs -touchz URI [URI …]
創(chuàng)建一個(gè)0字節(jié)的空文件。
示例:
- hadoop -touchz pathname
返回值:
成功返回0,失敗返回-1。
出處:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html
總結(jié)
以上是生活随笔為你收集整理的Hadoop Shell命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop命令手册
- 下一篇: Hadoop Map/Reduce教程