HDFS操作命令

總結(jié):

上傳文件:put、copyFromLocal诵棵、moveFromLocal
下載文件:get、copyToLocal祝旷、moveToLocal
查看文件:text履澳、cat、tail
合并文件:getmerge

命令詳解

HDFS命令基本格式:hadoop fs -cmd < args >

表格:

選項名稱 使用格式 含義
-ls -ls <路徑> 查看指定路徑的當(dāng)前目錄結(jié)構(gòu)
-lsr -lsr <路徑> 遞歸查看指定路徑的目錄結(jié)構(gòu)
-du -du <路徑> 統(tǒng)計目錄下個文件大小
-dus -dus <路徑> 匯總統(tǒng)計目錄下文件(夾)大小
-count -count [-q] <路徑> 統(tǒng)計文件(夾)數(shù)量
-mv -mv <源路徑> <目的路徑> 移動
-cp -cp <源路徑> <目的路徑> 復(fù)制
-rm -rm [-skipTrash] <路徑> 刪除文件/空白文件夾
-rmr -rmr [-skipTrash] <路徑> 遞歸刪除
-put -put <多個linux上的文件> <hdfs路徑> 上傳文件
-copyFromLocal -copyFromLocal <多個linux上的文件> <hdfs路徑> 從本地復(fù)制
-moveFromLocal -moveFromLocal <多個linux上的文件> <hdfs路徑> 從本地移動
-getmerge -getmerge <源路徑> <linux路徑> 合并到本地
-cat -cat <hdfs路徑> 查看文件內(nèi)容
-text -text <hdfs路徑> 查看文件內(nèi)容
-copyToLocal -copyToLocal [-ignoreCrc][-crc] [hdfs源路徑][linux目的路徑] 從本地復(fù)制
-moveToLocal -moveToLocal [-crc] <hdfs源路徑> <linux目的路徑> 從本地移動
-mkdir -mkdir <hdfs路徑> 創(chuàng)建空白文件夾
-setrep -setrep [-R][-w] <副本數(shù)> <路徑> 修改副本數(shù)量
-touchz -touchz <文件路徑> 創(chuàng)建空白文件
-stat -stat [format] <路徑> 顯示文件統(tǒng)計信息
-tail -tail [-f] <文件> 查看文件尾部信息
-chmod -chmod [-R] <權(quán)限模式> [路徑] 修改權(quán)限
-chown -chown [-R][屬主][:[屬組]] 路徑 修改屬主
-chgrp -chgrp [-R] 屬組名稱 路徑 修改屬組
-help -help [命令選項] 幫助

注意:以上表格中路徑包括hdfs中的路徑和linux中的路徑怀跛。對于容易產(chǎn)生歧義的地方距贷,會特別指出“l(fā)inux路徑”或者“hdfs路徑”。如果沒有明確指出吻谋,意味著是hdfs路徑储耐。

1、創(chuàng)建目錄命令

HDFS有一個默認(rèn)的工作目錄/user/$USER滨溉,其中$USER是用戶的登錄用戶名什湘。不過目錄不會自動建立,需要mkdir建立它
命令格式:hadoop fs -mkdir

#在user目錄下創(chuàng)建boy目錄
hadoop fs -mkdir /user/boy

注意:支持級聯(lián)創(chuàng)建新目錄晦攒,Hadoop的mkdir命令會自動創(chuàng)建父目錄闽撤,類似于帶-p的linux命令

2、上傳文件命令

put命令從本地文件系統(tǒng)中復(fù)制單個或多個源路徑到目標(biāo)文件系統(tǒng)脯颜,也支持從標(biāo)準(zhǔn)輸入設(shè)備中讀取輸入并寫入目標(biāo)文件系統(tǒng)哟旗。分為本地上傳和上傳到HDFS中。
命令格式:hadoop fs -put filename

#放本地文件系統(tǒng)的一個文件進(jìn)去
hadoop fs -put example.txt .

最后一個參數(shù)是句點(diǎn)栋操,相當(dāng)于放入了默認(rèn)的工作目錄闸餐,等價于hadoop fs -put example.txt /user/chen

3、上傳文件到HDFS

上傳文件時矾芙,文件首先復(fù)制到DataNode上舍沙,只有所有的DataNode都成功接收完數(shù)據(jù),文件上傳才是成功的剔宪。
命令格式:hadoop dfs put filename newfilename

#通過“-put 文件1 文件2 ”命令將Hadoop目錄下的test1文件上傳到HDFS上并重命名為test2
hadoop dfs -put test1 test2

從本地文件系統(tǒng)中復(fù)制單個或多個源路徑到目標(biāo)文件系統(tǒng)拂铡。也支持從標(biāo)準(zhǔn)輸入中讀取輸入寫入目標(biāo)文件系統(tǒng)壹无。

hadoop fs -put - hdfs://host:port/hadoop/hadoopfile

4、列出HDFS上的文件

采用-ls命令列出HDFS上的文件感帅。在HDFS中未帶參數(shù)的-ls命令沒有返回任何值斗锭,它默認(rèn)返回HDFS的home目錄下
的內(nèi)容。在HDFS中失球,沒有當(dāng)前工作目錄這樣一個概念岖是,也沒有cmd這樣的命令。
命令格式:user@NameNode:hadoop$ bin/hadoop dfs -ls
如:

#列出HDFS當(dāng)前目錄下的所有文件
hadoop dfs -ls

5实苞、列出HDFS目錄下某個文檔的文件

通過“-ls 文件夾名” 命令瀏覽HDFS下文件夾中的文件
命令格式:hadoop dfs -ls 文件夾名

瀏覽HDFS中in文件夾中的文件
hadoop dfs -ls in

通過該命令可以查看in文件夾中的所有文檔文件

6豺撑、查看HDFS下某個文件的內(nèi)容

通過“-cat 文件名”命令查看HDFS下文件夾中某個文件的內(nèi)容
命令格式:hadoop$ bin/hadoop dfs -cat 文件名

#查看HDFS下in 目錄中的內(nèi)容
hadoop$ bin/hadoop dfs -cat in/*

通過這個命令可以查看in文件夾中所有文件的內(nèi)容

7、將HDFS中的文件復(fù)制到本地系統(tǒng)中

通過“-get 文件按1 文件2”命令將HDFS中某目錄下的文件復(fù)制到本地系統(tǒng)的某文件中硬梁,并對該文件重新命名。
命令格式:hadoop dfs -get 文件名 新文件名

#將HDFS中的in文件復(fù)制到本地系統(tǒng)并重命名為IN1
hadoop dfs -get in IN1

-get 命令與-put命令一樣胞得,既可以操作目錄荧止,也可以操作文件

8、刪除HDFS下的文檔

通過“-rmr 文件”命令刪除HDFS下的文件
命令格式:hadoop$ bin/hadoop dfs -rmr 文件

#刪除HDFS下的out文檔
hadoop dfs -rmr out

-rmr 刪除文檔命令相當(dāng)于delete的遞歸版本阶剑。

9跃巡、格式化HDFS

通過-format命令實現(xiàn)HDFS格式化
命令格式:user@NameNode:hadoop$ bin/hadoop NameNode -format

10、啟動HDFS

通過運(yùn)行start-dfs.sh牧愁,就可以啟動HDFS了
命令格式:user@NameNode:hadoop$ bin/start-dfs.sh

11素邪、關(guān)閉HDFS

當(dāng)需要退出HDFS時,通過stop-dfs.sh 就可以關(guān)閉HDFS
命令格式:user@NameNode:hadoop$ bin/stop-dfs.sh

12猪半、HDFS其他命令

HDFS的命令遠(yuǎn)不止這些兔朦,對于其他操作,可以通過-help commandName 命令列出清單磨确。下面列舉一些命令進(jìn)行說明沽甥。

(1)chgrp改變文件所屬的組命令
chgrp命令的用途是:更改文件或目錄的組所有權(quán)。
語法格式:hadoop fs -charg [-R] GROUP URL .....
使用-R將使改變在目錄結(jié)構(gòu)下遞歸進(jìn)行乏奥。命令的使用者必須是文件的所有者或者超級用戶摆舟。

(2)chmod改變文件的權(quán)限
chmod用于改變文件或目錄的訪問權(quán)限,這個Linux系統(tǒng)管理員最常用的命令之一邓了。
使用方法:hadoop fs -chmod [-R] ...
使用-R將使改變在目錄結(jié)構(gòu)下遞歸進(jìn)行恨诱。命令的使用者必須是文件的所有者或者是超級用戶

(3)chown改變文件的擁有者
chown命令改變文件的擁有者。
使用方法:hadoop fs -chown [-R]....
使用-R將使改變在目錄結(jié)構(gòu)下遞歸進(jìn)行骗炉。命令的使用者必須是超級用戶照宝。

(4)copyFromLocal命令
除了限定源路徑是只能是一個本地文件外,其他方面和put命令相似句葵。
使用方法:hadoop fs -copyFromLocal <localsrc> URI

(5)copyToLocal命令
除了限定目標(biāo)路徑是一個本地文件外硫豆,其他方面和get命令類似龙巨。
使用方法:hadoop fs -copyToLocal {-ignorecrc} {-crc} URI <localdst>

(6)cp命令
cp命令是將文件從源路徑復(fù)制到目標(biāo)路徑。這個命令允許有多個源路徑熊响,此時目標(biāo)路徑必須是一個目錄旨别。
使用方法: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

返回值:成功返回0 ,失敗返回-1

(7)du命令
du命令顯示目錄中所有文件的大小汗茄,或者當(dāng)只指定一個文件時秸弛,顯示此文件的大小
使用方法:hadoop fs -du URI [URI........]

hadoop fs -du /user/hadoop/dir1   /user/hadoop/file1   hdfs://host:port/user/hadoop/dir1

返回值
成功返回0,失敗返回-1

(8)dus命令
dus是顯示文件大小的命令洪碳。
使用方法:hadoop fs -dus <args>

(9)expunge命令
expunge是清空回收站的命令
使用方法:hadoop fs -expunge

(10)get命令
get是復(fù)制文件到本地文件系統(tǒng)的命令
使用方法:hadoop fs -get [-ignorecrc] [-crc] <localdst>
可用-ignorecrc選項復(fù)制CRC校驗失敗的文件:使用-CRC選項復(fù)制文件以及CRC信息递览。

hadoop fs -get /user/hadoop/file localfile
hadoop fs -get hdfs://host:port /user/hadoop/file localfile

返回值
成功返回0,失敗返回-1

(11)getmerge命令
getmerge命令用于接受一個源目錄和一個目標(biāo)文件作為輸入瞳腌,并且將源目錄中所有的文件合并成本地目標(biāo)文件绞铃。
使用方法:hadoop fs -getmerge <src> <localdst> [addnl]
參數(shù)說明:addl是可選的,用于指定在每個文件結(jié)尾添加一個換行符嫂侍;

假設(shè)在你的hdfs集群上有一個/user/hadoop/output目錄
里面有作業(yè)執(zhí)行的結(jié)果(多個文件組成)part-000000,part-000001,part-000002

#然后你想把所有的文件合攏來一起看 可以使用命令:
hadoop fs -getmerge /user/hadoop/output local_file

然后就可以在本地使用vi local_file查看內(nèi)容了

(12)ls命令
ls命令查看當(dāng)前目錄下的信息
使用方法:hadoop fs -ls <args>
如果是文件儿捧,則按照如下格式返回文件信息:
文件名 <副本數(shù)>文件大小 修改日期 修改時間 權(quán)限 用戶ID 組ID

如果是目錄,則返回它直接子文件的一個列表挑宠,就像在UNIX中一樣菲盾。目錄返回i額表的信息如下:
目錄名<dir>修改日期 修改時間 權(quán)限 用戶ID 組ID

hadoop fs -ls /user/hadoop/file1 /user/hadoop/file2 

返回值
成功返回0,失敗返回-1

(13)lsr命令
lsr命令是-ls命令的遞歸版各淀,類似于UNIX中的ls-r懒鉴。
使用方法:hadoop fs -lsr <args>

(14)movefromLocal命令
復(fù)制一份本地文件到hdfs,當(dāng)成功后碎浇,刪除本地文件
使用方法:dfs -moveFromLocal <src> <dst>

(14.5)moveToLocal命令
類似于-get临谱,但是當(dāng)復(fù)制完成后,會刪除hdfs上的文件
使用方法:moveToLocal <src> <localDest>

(15)mv命令
將文件從源路徑移動到目標(biāo)路徑奴璃。這個命令允許有多個源路徑吴裤,此時目標(biāo)路徑必須是一個目錄
使用方法:hadoop fs -mv URI [URI.....] <dest>
備注:不允許在不同的文件系統(tǒng)間移動文件。

hadoop fs -mv /user/hadoop/file1 /user/local/hadoop/file2

返回值
成功返回0溺健,失敗返回-1

(16)put 命令
put命令從本地文件系統(tǒng)中復(fù)制單個或多個源路徑到目標(biāo)文件系統(tǒng)麦牺,也支持從標(biāo)準(zhǔn)輸入中讀取輸入寫入目標(biāo)文件系統(tǒng)
使用方法:hadoop fs -put <localsrc> .... <dst>

hadoop fs -put localfile /user/hadoop/hadoopfile

(17)rm命令
rm命令刪除指定的文件,只刪除非空目錄和文件鞭缭。
使用方法:hadoop fs -rm URI [URI......]
請參考rmr命令了解遞歸刪除剖膳。

(18)rmr命令
rmr命令是delete命令的遞歸版本
使用方法:hadoop fs -rmr URI [URI.......]

hadoop fs -rmr /user/hadoop/dir
hadoop fs -rmr hdfs://host:port/user/hadoop/dir

返回值
成功返回0,失敗返回-1

(19)setrep命令
setrep命令可以改變一個文件的副本系數(shù)岭辣。
使用方法:hadoop fs -setrep [-R] <path>
參數(shù)說明:-R 選項用于遞歸改變目錄下所有文件的副本系數(shù)

hadoop fs -setrep -w 3 -R  /user/hadoop/dir1

返回值
成功返回0吱晒,失敗返回-1

(20)stat命令
stat命令用于返回指定路徑的統(tǒng)計信息
使用方法:hadoop fs -stat URI [URI......]

hadoop fs -stat path

返回值
成功返回0,失敗返回-1

(21)tail命令
tail命令將文件尾部1KB的內(nèi)容輸出到stdout沦童。支持-f選項仑濒,行為和UNIX中一致
使用方法:hadoop fs -tail [-f] URI

hadoop fs -tail pathname

返回值
成功返回0叹话,失敗返回-1

(22)test命令
test命令是檢查命令,可以檢查文件是否存在墩瞳、文件的大小等驼壶。
使用方法:hadoop fs -test -[ezd] URI

參數(shù)說明:
-e:檢查文件是否存在,如果存在則返回0喉酌。
-z:檢查文件是否是0字節(jié)热凹,如果是則返回0
-d:如果路徑是一個目錄,則返回1泪电,否則返回0

hadoop fs -test -e filename

(23)text命令
text命令用于將源文件輸出問文本格式
使用方法:hadoop fs -text <src>
允許的格式是zip和TextRecordInputStream般妙。

(24)touchz 命令
touchz命令用于創(chuàng)建一個0字節(jié)的空文件。
使用方法: hadoop fs -touchz URI [URI....]

hadoop -touchz pathname

返回值
成功返回0相速,失敗返回-1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碟渺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子突诬,更是在濱河造成了極大的恐慌苫拍,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件攒霹,死亡現(xiàn)場離奇詭異怯疤,居然都是意外死亡浆洗,警方通過查閱死者的電腦和手機(jī)催束,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伏社,“玉大人抠刺,你說我怎么就攤上這事≌” “怎么了速妖?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長聪黎。 經(jīng)常有香客問我罕容,道長,這世上最難降的妖魔是什么稿饰? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任锦秒,我火速辦了婚禮,結(jié)果婚禮上喉镰,老公的妹妹穿的比我還像新娘旅择。我一直安慰自己,他們只是感情好侣姆,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布生真。 她就那樣靜靜地躺著沉噩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柱蟀。 梳的紋絲不亂的頭發(fā)上川蒙,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音产弹,去河邊找鬼派歌。 笑死,一個胖子當(dāng)著我的面吹牛痰哨,可吹牛的內(nèi)容都是我干的胶果。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼斤斧,長吁一口氣:“原來是場噩夢啊……” “哼早抠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起撬讽,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤蕊连,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后游昼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體甘苍,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年烘豌,在試婚紗的時候發(fā)現(xiàn)自己被綠了载庭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡廊佩,死狀恐怖囚聚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情标锄,我是刑警寧澤顽铸,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站料皇,受9級特大地震影響谓松,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜践剂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一鬼譬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舷手,春花似錦拧簸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贾富。三九已至,卻和暖如春牺六,著一層夾襖步出監(jiān)牢的瞬間颤枪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工淑际, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留畏纲,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓春缕,卻偏偏與公主長得像盗胀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锄贼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容