可以帶着下面問題來閱讀:
1.chmod與chown的差別是什麽?
2.cat将路徑指定檔案的内容輸出到哪裡?
3.cp能否是不同之間複制?
4.hdfs如何檢視檔案大小?
5.hdfs如何合并檔案?
6.如何顯示目前路徑下的所有檔案夾和檔案
7.rm删除檔案失敗的原因什麼?
8.如何檢視檔案的建立時間
9.檢視檔案指令的内容有哪些?能否說出三種?
10.如何判斷檔案是否存在?
11.如何建立0位元組檔案
對于指令,我們一次性記住,可能以後又忘記了,這裡大家用到的時候,可以檢視一下。
調用檔案系統(FS)Shell指令應使用 bin/hadoop fs <args>的形式。 所有的的FS shell指令使用URI路徑作為參數。URI格式是scheme://authority/path。對HDFS檔案系統,scheme是hdfs,對本地檔案系統,scheme是file。其中scheme和authority參數都是可選的,如果未加指定,就會使用配置中指定的預設scheme。一個HDFS檔案或目錄比如/parent/child可以表示成hdfs://namenode:namenodeport/parent/child,或者更簡單的/parent/child(假設你配置檔案中的預設值是namenode:namenodeport)。大多數FS Shell指令的行為和對應的Unix Shell指令類似,不同之處會在下面介紹各指令使用詳情時指出。出錯資訊會輸出到stderr,其他資訊輸出到stdout。
(stderr與stdout這裡可以了解為檔案)
cat
使用方法:hadoop fs -cat URI [URI …]
将路徑指定檔案的内容輸出到stdout。
示例:
hadoop fs -cat hdfs://host1:port1/file1 hdfs://host2:port2/file2
hadoop fs -cat file:///file3 /user/hadoop/file4
傳回值:
成功傳回0,失敗傳回-1。
chgrp
chmod
使用方法:hadoop fs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI …]
chown
使用方法:hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]
copyFromLocal
使用方法:hadoop fs -copyFromLocal <localsrc> URI
除了限定源路徑是一個本地檔案外,和put指令相似。
copyToLocal
使用方法:hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>
除了限定目标路徑是一個本地檔案外,和get指令類似。
cp
使用方法:hadoop fs -cp URI [URI …] <dest>
将檔案從源路徑複制到目标路徑。這個指令允許有多個源路徑,此時目标路徑必須是一個目錄。
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
du
使用方法:hadoop fs -du URI [URI …]
顯示目錄中所有檔案的大小,或者當隻指定一個檔案時,顯示此檔案的大小。
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
get
使用方法:hadoop fs -get [-ignorecrc] [-crc] <src> <localdst>
複制檔案到本地檔案系統。可用-ignorecrc選項複制CRC校驗失敗的檔案。使用-crc選項複制檔案以及CRC資訊。
hadoop fs -get /user/hadoop/file localfile
hadoop fs -get hdfs://host:port/user/hadoop/file localfile
getmerge
使用方法:hadoop fs -getmerge <src> <localdst> [addnl]
接受一個源目錄和一個目标檔案作為輸入,并且将源目錄中所有的檔案連接配接成本地目标檔案。addnl是可選的,用于指定在每個檔案結尾添加一個換行符。
ls
使用方法:hadoop fs -ls <args>
如果是檔案,則按照如下格式傳回檔案資訊:
檔案名 <副本數> 檔案大小 修改日期 修改時間 權限 使用者ID 組ID
如果是目錄,則傳回它直接子檔案的一個清單,就像在Unix中一樣。目錄傳回清單的資訊如下:
目錄名 <dir> 修改日期 修改時間 權限 使用者ID 組ID
hadoop fs -ls /user/hadoop/file1 /user/hadoop/file2 hdfs://host:port/user/hadoop/dir1 /nonexistentfile
lsr
使用方法:hadoop fs -lsr <args>
ls指令的遞歸版本。類似于Unix中的ls -R。
mkdir
使用方法:hadoop fs -mkdir <paths>
接受路徑指定的uri作為參數,建立這些目錄。其行為類似于Unix的mkdir -p,它會建立路徑中的各級父目錄。
hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
hadoop fs -mkdir hdfs://host1:port1/user/hadoop/dir hdfs://host2:port2/user/hadoop/dir
movefromLocal
使用方法:dfs -moveFromLocal <src> <dst>
輸出一個”not implemented“資訊。
mv
使用方法:hadoop fs -mv URI [URI …] <dest>
将檔案從源路徑移動到目标路徑。這個指令允許有多個源路徑,此時目标路徑必須是一個目錄。不允許在不同的檔案系統間移動檔案。
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
put
使用方法:hadoop fs -put <localsrc> ... <dst>
從本地檔案系統中複制單個或多個源路徑到目标檔案系統。也支援從标準輸入中讀取輸入寫入目标檔案系統。
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
從标準輸入中讀取輸入。
rm
使用方法:hadoop fs -rm URI [URI …]
删除指定的檔案。隻删除非空目錄和檔案。請參考rmr指令了解遞歸删除。
hadoop fs -rm hdfs://host:port/file /user/hadoop/emptydir
rmr
使用方法:hadoop fs -rmr URI [URI …]
delete的遞歸版本。
hadoop fs -rmr /user/hadoop/dir
hadoop fs -rmr hdfs://host:port/user/hadoop/dir
setrep
使用方法:hadoop fs -setrep [-R] <path>
改變一個檔案的副本系數。-R選項用于遞歸改變目錄下所有檔案的副本系數。
hadoop fs -setrep -w 3 -R /user/hadoop/dir1
stat
使用方法:hadoop fs -stat URI [URI …]
傳回指定路徑的統計資訊。
hadoop fs -stat path
tail
使用方法:hadoop fs -tail [-f] URI
将檔案尾部1K位元組的内容輸出到stdout。支援-f選項,行為和Unix中一緻。
hadoop fs -tail pathname
test
使用方法:hadoop fs -test -[ezd] URI
選項:
-e 檢查檔案是否存在。如果存在則傳回0。
-z 檢查檔案是否是0位元組。如果是則傳回0。
-d 如果路徑是個目錄,則傳回1,否則傳回0。
hadoop fs -test -e filename
text
使用方法:hadoop fs -text <src>
将源檔案輸出為文本格式。允許的格式是zip和TextRecordInputStream。
touchz
使用方法:hadoop fs -touchz URI [URI …]
建立一個0位元組的空檔案。
hadoop -touchz pathname
推薦文章
<a href="http://www.aboutyun.com/thread-6742-1-1.html" target="_blank">hadoop入門:hadoop使用shell指令總結</a>
補充部分
在整理一下,算是補充
查閱幫助查閱某個指令的幫助指令如下:
Hadoop fs –help ls
HDFS檔案指令清單cat hadoop fs –cat file [file…]顯示檔案内容。若要讀取壓縮檔案,應該使用text指令。
chgrp hadoop fs –chgrp [-R] GROUP PATH [PATH …] 變更檔案和目錄的群組。選項-R遞歸的執行變更。使用者必須為檔案的所有者或超級使用者。
chmod hadoop fs –chmod [-R]MODE[,MODE …] PATH [PATH …]變更檔案和目錄的通路權限。類似于unix對應的指令,MODE可以為一個3位8進制數,或{augo}+/-{rwxX}.選項-R遞歸的執行變更。使用者必須為檔案所有者或超級使用者。
chown hadoop fs–chown [-R] [OWNER] [:[GROUP]] PATH [PATH …]變更檔案和目錄的所有者。選項-R為遞歸執行變更。使用者必須為超級使用者。
copyFromLocal hadoop fs–copyFromLocal LOCALSRC [LOCALSRC …] DST等同于put,從本地檔案系統中複制檔案。
copyToLocal hadoop fs –copyToLocal[-ignoreecrc] [-crc] SRC [SRC …] LOCALDST等同于get,将檔案複制到本地檔案系統中。
count hadoop fs–count [-q] PATH [PATH …] 顯示由PATH确定的子目錄個數、檔案個數、使用位元組個數,以及所有的檔案/目錄名。選項-q顯示額度資訊。
cp hadoop fs –cp SRC [SRC …]DST 将檔案從源複制到目的地。如果指定了多個源,目的端必須為一個目錄。
du hadoop fs –du PATH [PATH..] 顯示檔案大小,如果PATH是一個目錄,會顯示該目錄中每個檔案的大小。檔案名用完整的URI協定字首表示。請注意雖然du反映了磁盤使用情況,但不能望文生義,因為真實的磁盤使用情況依賴于塊大小和副本系數。
dus hadoop fs –dus PATH [PATH…] 類似于du,但是當作用于目錄時,dus會顯示檔案大小之和。
expunge hadoop fs–expunge 清空資源回收筒。如果打開資源回收筒屬性,當檔案被删除時,它首先會移動到臨時目錄.Trash/中。隻有超過使用者設定的延遲之後,檔案才會被永久删除。而expunge指令強制删除.Trash/目錄中的所有檔案。
get hadoop fs –get[ignorecrc] [-crc] SRC [SRC …]LOCALDST 将檔案複制到本地檔案系統。如果指定了多個源檔案,本地目的端必須為一個目錄。如果LOCALDST被置為-,檔案被複制到stdout。
getmerge hadoop fs–getmerge SRC [SRC …] LOCALDST[addnl] 擷取由SRC指定的所有檔案,将它們合并為單個檔案,并寫入打本地檔案系統中的LOCALDST。選項addnl将在每個檔案的末尾處加上一個換行符。
help hadoop fs–help[CMD] 顯示指令CMD的用法資訊。如果不顯示CMD,則顯示所有指令的用法資訊。
ls hadoop fs –lsPATH[PATH…] 列出檔案和目錄,每個入口點會顯示檔案名、權限、所有者、組、大小和修改時間。檔案入口點還會顯示它們的副本系數。
lsr hadoop fs –lsr PATH [PATH…] ls的遞歸版本。
mkdir hadoop fs–mkdir PATH [PATH..] 建立目錄,會建立路徑中所有缺失的父目錄(類似于unix的mkdir–p)
moveFromLocal hadoop fs –moveFromLocalLOCALSRC [LOCALSRC …]DST 類似于put,隻是本地的源在複制之後會被删除。
moveToLocal hadoop fs–moveToLocal [-crc] SRC [SRC …]LOCALDST 顯示一條“not implemented yet”消息。
mv hadoop fs–mv SRC [SRC…]DST 将檔案從源移動到目的地。如果指定多個源檔案,目的端必須為一個目錄。不允許跨檔案系統的移動。
put hadoop fs –put LOCALSRC[LOCALSRC …]DST 從本地檔案系統中複制檔案或目錄到HDFS。如果LOCALSRC被置為-,則輸入為stdin且DST必須為檔案。
rm hadoop fs –rm PATH[PATH…] 删除檔案和空目錄。
rmr hadoop fs–rmr PATH [PATH…] rm的遞歸版本。
setrep hadoop fs–setrep [-R] [-w] REP PATH [PATH …] 改變檔案的目标副本系數,放入REP中。選項-R将遞歸的改變PATH指定的目錄中所有檔案的目标副本系數。副本系數需要一定的時間才能達到目标值。選項-w将等待副本系數以與目标值相比對。
stat hadoop fs –stat [FORMAT]PATH [PATH …] 顯示檔案中的統計資訊。FORMAT字元串完全被列印出來,但會按照以下設定的格式進行替換
%b 以資料塊為機關的檔案大小
%F根據檔案類型為字元串“directory”或“regularfile”
%n檔案名
%o塊大小
%r 副本
%y 以yyyy-MM-dd HH:mm:ss格式顯示的UTC時間。
%Y 自1970年1月1日起(UTC)計的毫秒數。
tail hadoop fs –tail [-f]FILE 顯示FILE中最後的1KB資料。
test hadoop fs –test –[ezd]PATH 對PATH進行如下類型的檢查。
-e PATH是否存在。如果PATH存在,傳回0.
-z 檔案是否為空。如果長度為0,傳回0.
-d 是否為目錄。如果PATH為目錄,傳回0.
text hadoop fs –text FILE [FILE…] 顯示檔案的文本内容。當檔案為文本檔案時,等同于cat。檔案為壓縮格式(gzip以及hadoop的二進制序列檔案格式)時,會先解壓縮。
touchz hadoop fs–touchz FILE [FILE…] 建立長度為0的檔案。如果檔案已存在,且長度非0,則報錯。
文章摘自: aboutyun 轉載請注明出處。
本文轉自 ChinaUnicom110 51CTO部落格,原文連結:http://blog.51cto.com/xingyue2011/1966228