linux中hdfs格式化,HDFS操作命令
總結:
上傳文件:put、copyFromLocal、moveFromLocal
下載文件:get、copyToLocal、moveToLocal
查看文件:text、cat、tail
合并文件:getmerge
命令詳解
HDFS命令基本格式:hadoop fs -cmd < args >
表格:
選項名稱
使用格式
含義
-ls
-ls
查看指定路徑的當前目錄結構
-lsr
-lsr
遞歸查看指定路徑的目錄結構
-du
-du
統計目錄下個文件大小
-dus
-dus
匯總統計目錄下文件(夾)大小
-count
-count [-q]
統計文件(夾)數量
-mv
-mv
移動
-cp
-cp
復制
-rm
-rm [-skipTrash]
刪除文件/空白文件夾
-rmr
-rmr [-skipTrash]
遞歸刪除
-put
-put
上傳文件
-copyFromLocal
-copyFromLocal
從本地復制
-moveFromLocal
-moveFromLocal
從本地移動
-getmerge
-getmerge
合并到本地
-cat
-cat
查看文件內容
-text
-text
查看文件內容
-copyToLocal
-copyToLocal [-ignoreCrc][-crc] [hdfs源路徑][linux目的路徑]
從本地復制
-moveToLocal
-moveToLocal [-crc]
從本地移動
-mkdir
-mkdir
創建空白文件夾
-setrep
-setrep [-R][-w]
修改副本數量
-touchz
-touchz
創建空白文件
-stat
-stat [format]
顯示文件統計信息
-tail
-tail [-f]
查看文件尾部信息
-chmod
-chmod [-R] [路徑]
修改權限
-chown
-chown [-R][屬主][:[屬組]] 路徑
修改屬主
-chgrp
-chgrp [-R] 屬組名稱 路徑
修改屬組
-help
-help [命令選項]
幫助
注意:以上表格中路徑包括hdfs中的路徑和linux中的路徑。對于容易產生歧義的地方,會特別指出“linux路徑”或者“hdfs路徑”。如果沒有明確指出,意味著是hdfs路徑。
1、創建目錄命令
HDFS有一個默認的工作目錄/user/$USER,其中$USER是用戶的登錄用戶名。不過目錄不會自動建立,需要mkdir建立它
命令格式:hadoop fs -mkdir
#在user目錄下創建boy目錄
hadoop fs -mkdir /user/boy
注意:支持級聯創建新目錄,Hadoop的mkdir命令會自動創建父目錄,類似于帶-p的linux命令
2、上傳文件命令
put命令從本地文件系統中復制單個或多個源路徑到目標文件系統,也支持從標準輸入設備中讀取輸入并寫入目標文件系統。分為本地上傳和上傳到HDFS中。
命令格式:hadoop fs -put filename
#放本地文件系統的一個文件進去
hadoop fs -put example.txt .
最后一個參數是句點,相當于放入了默認的工作目錄,等價于hadoop fs -put example.txt /user/chen
3、上傳文件到HDFS
上傳文件時,文件首先復制到DataNode上,只有所有的DataNode都成功接收完數據,文件上傳才是成功的。
命令格式:hadoop dfs put filename newfilename
#通過“-put 文件1 文件2 ”命令將Hadoop目錄下的test1文件上傳到HDFS上并重命名為test2
hadoop dfs -put test1 test2
從本地文件系統中復制單個或多個源路徑到目標文件系統。也支持從標準輸入中讀取輸入寫入目標文件系統。
hadoop fs -put - hdfs://host:port/hadoop/hadoopfile
4、列出HDFS上的文件
采用-ls命令列出HDFS上的文件。在HDFS中未帶參數的-ls命令沒有返回任何值,它默認返回HDFS的home目錄下
的內容。在HDFS中,沒有當前工作目錄這樣一個概念,也沒有cmd這樣的命令。
命令格式:user@NameNode:hadoop$ bin/hadoop dfs -ls
如:
#列出HDFS當前目錄下的所有文件
hadoop dfs -ls
5、列出HDFS目錄下某個文檔的文件
通過“-ls 文件夾名” 命令瀏覽HDFS下文件夾中的文件
命令格式:hadoop dfs -ls 文件夾名
瀏覽HDFS中in文件夾中的文件
hadoop dfs -ls in
通過該命令可以查看in文件夾中的所有文檔文件
6、查看HDFS下某個文件的內容
通過“-cat 文件名”命令查看HDFS下文件夾中某個文件的內容
命令格式:hadoop$ bin/hadoop dfs -cat 文件名
#查看HDFS下in 目錄中的內容
hadoop$ bin/hadoop dfs -cat in/*
通過這個命令可以查看in文件夾中所有文件的內容
7、將HDFS中的文件復制到本地系統中
通過“-get 文件按1 文件2”命令將HDFS中某目錄下的文件復制到本地系統的某文件中,并對該文件重新命名。
命令格式:hadoop dfs -get 文件名 新文件名
#將HDFS中的in文件復制到本地系統并重命名為IN1
hadoop dfs -get in IN1
-get 命令與-put命令一樣,既可以操作目錄,也可以操作文件
8、刪除HDFS下的文檔
通過“-rmr 文件”命令刪除HDFS下的文件
命令格式:hadoop$ bin/hadoop dfs -rmr 文件
#刪除HDFS下的out文檔
hadoop dfs -rmr out
-rmr 刪除文檔命令相當于delete的遞歸版本。
9、格式化HDFS
通過-format命令實現HDFS格式化
命令格式:user@NameNode:hadoop$ bin/hadoop NameNode -format
10、啟動HDFS
通過運行start-dfs.sh,就可以啟動HDFS了
命令格式:user@NameNode:hadoop$ bin/start-dfs.sh
11、關閉HDFS
當需要退出HDFS時,通過stop-dfs.sh 就可以關閉HDFS
命令格式:user@NameNode:hadoop$ bin/stop-dfs.sh
12、HDFS其他命令
HDFS的命令遠不止這些,對于其他操作,可以通過-help commandName 命令列出清單。下面列舉一些命令進行說明。
(1)chgrp改變文件所屬的組命令
chgrp命令的用途是:更改文件或目錄的組所有權。
語法格式:hadoop fs -charg [-R] GROUP URL .....
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者超級用戶。
(2)chmod改變文件的權限
chmod用于改變文件或目錄的訪問權限,這個Linux系統管理員最常用的命令之一。
使用方法:hadoop fs -chmod [-R] ...
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者是超級用戶
(3)chown改變文件的擁有者
chown命令改變文件的擁有者。
使用方法:hadoop fs -chown [-R]....
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是超級用戶。
(4)copyFromLocal命令
除了限定源路徑是只能是一個本地文件外,其他方面和put命令相似。
使用方法:hadoop fs -copyFromLocal URI
(5)copyToLocal命令
除了限定目標路徑是一個本地文件外,其他方面和get命令類似。
使用方法:hadoop fs -copyToLocal {-ignorecrc} {-crc} URI
(6)cp命令
cp命令是將文件從源路徑復制到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄。
使用方法:hadoop fs -cp URI [URI....]
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命令顯示目錄中所有文件的大小,或者當只指定一個文件時,顯示此文件的大小
使用方法: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
(9)expunge命令
expunge是清空回收站的命令
使用方法:hadoop fs -expunge
(10)get命令
get是復制文件到本地文件系統的命令
使用方法:hadoop fs -get [-ignorecrc] [-crc]
可用-ignorecrc選項復制CRC校驗失敗的文件:使用-CRC選項復制文件以及CRC信息。
hadoop fs -get /user/hadoop/file localfile
hadoop fs -get hdfs://host:port /user/hadoop/file localfile
返回值
成功返回0,失敗返回-1
(11)getmerge命令
getmerge命令用于接受一個源目錄和一個目標文件作為輸入,并且將源目錄中所有的文件合并成本地目標文件。
使用方法:hadoop fs -getmerge [addnl]
參數說明:addl是可選的,用于指定在每個文件結尾添加一個換行符;
假設在你的hdfs集群上有一個/user/hadoop/output目錄
里面有作業執行的結果(多個文件組成)part-000000,part-000001,part-000002
#然后你想把所有的文件合攏來一起看 可以使用命令:
hadoop fs -getmerge /user/hadoop/output local_file
然后就可以在本地使用vi local_file查看內容了
(12)ls命令
ls命令查看當前目錄下的信息
使用方法:hadoop fs -ls
如果是文件,則按照如下格式返回文件信息:
文件名 文件大小 修改日期 修改時間 權限 用戶ID 組ID
如果是目錄,則返回它直接子文件的一個列表,就像在UNIX中一樣。目錄返回i額表的信息如下:
目錄名
hadoop fs -ls /user/hadoop/file1 /user/hadoop/file2
返回值
成功返回0,失敗返回-1
(13)lsr命令
lsr命令是-ls命令的遞歸版,類似于UNIX中的ls-r。
使用方法:hadoop fs -lsr
(14)movefromLocal命令
復制一份本地文件到hdfs,當成功后,刪除本地文件
使用方法:dfs -moveFromLocal
(14.5)moveToLocal命令
類似于-get,但是當復制完成后,會刪除hdfs上的文件
使用方法:moveToLocal
(15)mv命令
將文件從源路徑移動到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄
使用方法:hadoop fs -mv URI [URI.....]
備注:不允許在不同的文件系統間移動文件。
hadoop fs -mv /user/hadoop/file1 /user/local/hadoop/file2
返回值
成功返回0,失敗返回-1
(16)put 命令
put命令從本地文件系統中復制單個或多個源路徑到目標文件系統,也支持從標準輸入中讀取輸入寫入目標文件系統
使用方法:hadoop fs -put ....
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命令可以改變一個文件的副本系數。
使用方法:hadoop fs -setrep [-R]
參數說明:-R 選項用于遞歸改變目錄下所有文件的副本系數
hadoop fs -setrep -w 3 -R /user/hadoop/dir1
返回值
成功返回0,失敗返回-1
(20)stat命令
stat命令用于返回指定路徑的統計信息
使用方法:hadoop fs -stat URI [URI......]
hadoop fs -stat path
返回值
成功返回0,失敗返回-1
(21)tail命令
tail命令將文件尾部1KB的內容輸出到stdout。支持-f選項,行為和UNIX中一致
使用方法:hadoop fs -tail [-f] URI
hadoop fs -tail pathname
返回值
成功返回0,失敗返回-1
(22)test命令
test命令是檢查命令,可以檢查文件是否存在、文件的大小等。
使用方法:hadoop fs -test -[ezd] URI
參數說明:
-e:檢查文件是否存在,如果存在則返回0。
-z:檢查文件是否是0字節,如果是則返回0
-d:如果路徑是一個目錄,則返回1,否則返回0
hadoop fs -test -e filename
(23)text命令
text命令用于將源文件輸出問文本格式
使用方法:hadoop fs -text
允許的格式是zip和TextRecordInputStream。
(24)touchz 命令
touchz命令用于創建一個0字節的空文件。
使用方法: hadoop fs -touchz URI [URI....]
hadoop -touchz pathname
返回值
成功返回0,失敗返回-1
總結
以上是生活随笔為你收集整理的linux中hdfs格式化,HDFS操作命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bravo
- 下一篇: Linux学习系列之Linux入门(一)