HDFS常用命令介紹與使用


HDFS命令行接口

前言:Hadoop自帶一組命令行工具,而其中有關HDFS的命令是其工作集的一個子集。命令行工作雖然是最基本的文件操作方式

但也是最常用的,所以熟練掌握是很必要的

1. 目錄瀏覽命令

 ls

hdfs dfs -ls <path> 

列出文件和目錄內容

例子:hdfs dfs -ls /

 lsr

 hdfs dfs -lsr <path>

遞歸列出目錄內容

例子:hdfs dfs -lsr /

df

hdfs dfs -df <path>

查看目錄使用情況

例子:hdfs dfs -df /

du

hdfs dfs -du <path>

查看該目錄下所有目錄及文件的大小

例子:hdfs dfs -du /

 dus

 hdfs dfs -dus <path>

只顯示<path>目錄的總大小,與du不同的是du會把<path>目錄下所有目錄和文件都列舉

出來,而dus只會將<dus>目錄的大小列出來

例子:hdsf dfs -dus /

2. 目錄或文件統計與測試命令

count

hdfs dfs -count [-q] <path>

顯示<path>下的目錄數及文件數,輸出格式:"目錄數 文件數 大小 路徑"

值得注意的是,統計是包含<path>本身這個目錄或者文件,且是遞歸統計

加上-q還可以查看文件的索引情況

例子:hdfs dfs -count /

test

hdfs dfs -test [-ezd] <path>

檢查HDFS上路徑為<path>的文件

-e 檢查文件是否存在,如果存在則返回0

-z 檢查文件是否是0字節。如果是則返回0

-d 如果路徑是個目錄,則返回0,否則返回1

例子:hdfs dfs -test -e /user/file

stat

顯示HDFS上路徑為<path>的文件或目錄的統計信息。格式為:

%b    文件大小

%n    文件名

%r    復制因子

%y,%Y        修改日期

例子:hdfs dfs -stat %b  %n  %r  %y  /user/file

 3. 文件瀏覽命令

cat

hdfs dfs -cat <src>

瀏覽HDFS路徑為<src>的文件內容

例子:hdfs dfs -cat /user/file

text

hdfs dfs -text <src>

將HDFS路徑為<src>的文本文件輸出

例子:hdfs dfs -text /user/file

 tail

hdfs dfs -tail [-f] <file>

顯示HDFS上路徑為<file>的文件最后1KB字節

-f選項會使顯示的內容隨文件內容更新而更新

例子:hdfs dfs -tail -f /user/file

4. 目錄操作命令

rmr

hdfs dfs -rmr [-skipTrash] <path>

將HDFS路徑為<path>的目錄以及目錄下的文件移近回收站

如果加上了-skipTrash參數,則直接刪除

例子:hdfs dfs -skipTrash /user

mkdir

hdfs dfs -mkdir [-p] <path>

在HDFS上創建路徑為<path>的目錄

-p 可以創建不存在的父目錄,也就是遞歸創建目錄

hdfs dfs -mkdir -p /hdfs/d1/d2/d3

5. 文件操作命令

HDFS文件系內文件操作

rm

hdfs dfs -rm [skipTrash]  <path>

將HDFS上路徑為<path>的文件移動到回收站

如果加上-skipTrash參數,則直接刪除

例子:hdfs dfs -rm -skipTrash /user/file

touchz

hdfs dfs -touchz <path>

創建一個路徑為<path>的0字節的HDFS空文件 

例子:hdfs dfs -touchz /user/file

 setrep

 hdfs dfs -setrep [-R] [-w] <rep> <path/file>

設置文件負責因子。該命令可以單獨設置文件的負責因子

加上-R可以遞歸執行該操作

例子:hdfs dfs -setrep -R 1 /user  

expunge

hdfs dfs -expunge 

清空回收站

例子:hdfs dfs -expunge 

mv

hdfs dfs -mv <scr> <dst>

將HDFS上的文件移動到目標文件夾

例子:hdfs dfs -mv /user/test.txt user/test

將/user目錄下的test.txt文件移動到/user/test目錄下

Local到HDFS的文件操作

put

hdfs dfs -put <localsrc> <dst>

將<localsrc>本地文件上傳到HDFS的<dst>目錄下

hdfs dfs -put /home/hadoop/test.txt   /user/

copyFromLocal

hdfs dfs -copyFromLocal <localsrc> <dst>

功能類似put

hdfs dfs -copyFromLocal /home/hadoop/test.txt   /user

moveFromLocal

hdfs dfs -moveFromLocal <localsrc> <dst>

將<localsrc>本地文件移動到HDFS的<dst>目錄下,本地刪除

hdfs dfs -moveFromLocal  /home/hadoop/test.txt   /user

appendToFile

-appendToFile <localsrc> <dst>

將<localsrc>本地文件內容追加到HDFS下<dst>路徑文件里面去

hdfs dfs -appendToFile ./test.txt  /hdfs/test.txt

HDFS到Local的文件操作

get

hdfs dfs -get [-ignoreCrc] [-crc] <src> <localdst>

將HDFS上<src>的文件下載到本地的<localdst>目錄

-ignoreCrc選項復制CRC驗證失敗的文件

-crc選項復制文件以及CRC信息

例子:hdfs dfs -get -crc /user/file /home/hadoop

getmerge

hdfs dfs -getmerge <src> <localdst> [addnl]

將HDFS上<scr>目錄下的所有文件按文件名順序合並成一個文件輸出

到本地的<localdst>目錄下

addnl可選,用於指定在每個文件結尾添加一個換行符

例子:hdfs dfs -getmerge /user/  /home/hadoop

copyToLocal

hdfs dfs -copyFromLocal [ignoreCrc] [-crc] <src> <localdst>

功能類似與get

例子:hdfs dfs -copyFromLocal -crc /user/file /home/hadoop

moveToLocal 

hdfs dfs -moveToLocal [-crc] <src> <localdst>

將HDFS上路徑為<src>的文件移動到本地<localdst>路徑下,HDFS上刪除

-crc選項復制文件以及CRC信息

例子:hdfs dfs -moveToLocal -crc /user/file /home/hadoop

6. 權限|分組|幫助命令

chmod

hdfs dfs -chmod [-R] <MODE> <path>

改變HDFS上路勁<path>的文件權限,-R選項遞歸執行該操作

例子:hdfs dfs -chmod -R +r /user    #將/user/目錄下所有文件加上文件讀權限

例子:hdfs dfs -chmod -R 755 /user    #將/user/目錄下所有文件加上rwxr-xr-x權限

chown

hdfs dfs -chown [-R] [OWNER][:[GROUP]]  <path>

修改HDFS上路徑為<path>的文件所屬用戶和組,-R選項表示遞歸執行該操作

例子:hdfs dfs -chown -R hadoop:hadoop /user   #將/user/目錄下所有文件所屬用戶和組改為hadoop

chgrp

hdfs dfs -chgrp [-R] GROUP <path>

改變HDFS上路徑為<path>的文件所屬組別,-R表示遞歸執行該操作

例子:hdfs dfs -chgrp -R hadoop /user/

help

hdfs dfs -help 

顯示所有dfs命令的幫助信息

hdfs dfs -help

 


免責聲明!

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



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