Hdfs常用命令


本文轉自:http://blog.csdn.net/zcf1002797280/article/details/49560961

 

在Hadoop/bin 目錄下使用下列命令,前面要加./

ls 命令

hadoop fs -ls  /

列出hdfs文件系統根目錄下的目錄和文件

hadoop fs -ls -R /

列出hdfs文件系統所有的目錄和文件


Put 命令

hadoop fs -put < local file > < hdfs file >

hdfs file的父目錄一定要存在,否則命令不會執行(一次將多個文件進行傳輸)

hadoop fs -put  < local file or dir >...< hdfs dir >

hdfs dir 一定要存在,否則命令不會執行

hadoop fs -put - < hdsf  file>

從鍵盤讀取輸入到hdfs file中,按Ctrl+D結束輸入,hdfs file不能存在,否則命令不會執行


moveFromLocal 命令

hadoop fs -moveFromLocal  < local src > ... < hdfs dst >

與put相類似,命令執行后源文件 local src 被刪除,也可以從從鍵盤讀取輸入到hdfs file中


copyFromLocal 命令

hadoop fs -copyFromLocal  < local src > ... < hdfs dst >

與put相類似,也可以從從鍵盤讀取輸入到hdfs file中


get 命令

hadoop fs -get < hdfs file > < local file or dir>

local file不能和 hdfs file名字不能相同,否則會提示文件已存在,沒有重名的文件會復制到本地

hadoop fs -get < hdfs file or dir > ... < local  dir >

拷貝多個文件或目錄到本地時,本地要為文件夾路徑
注意:如果用戶不是root, local 路徑要為用戶文件夾下的路徑,否則會出現權限問題,


moveToLocal 命令

當前版本中還未實現此命令


copyToLocal 命令

hadoop fs -copyToLocal < local src > ... < hdfs dst >

與get相類似


rm 命令

hadoop fs -rm < hdfs file > ...
hadoop fs -rm -r < hdfs dir>...

每次可以刪除多個文件或目錄


mkdir 命令

hadoop fs -mkdir < hdfs path>

只能一級一級的建目錄,父目錄不存在的話使用這個命令會報錯

hadoop fs -mkdir -p < hdfs path> 

所創建的目錄如果父目錄不存在就創建該父目錄


getmerge 命令

hadoop fs -getmerge < hdfs dir >  < local file >

將hdfs指定目錄下所有文件排序后合並到local指定的文件中,文件不存在時會自動創建,文件存在時會覆蓋里面的內容

hadoop fs -getmerge -nl  < hdfs dir >  < local file >

加上nl后,合並到local file中的hdfs文件之間會空出一行


cp 命令

hadoop fs -cp  < hdfs file >  < hdfs file >

目標文件不能存在,否則命令不能執行,相當於給文件重命名並保存,源文件還存在

hadoop fs -cp < hdfs file or dir >... < hdfs dir >

目標文件夾要存在,否則命令不能執行


mv 命令

hadoop fs -mv < hdfs file >  < hdfs file >

目標文件不能存在,否則命令不能執行,相當於給文件重命名並保存,源文件不存在

hadoop fs -mv  < hdfs file or dir >...  < hdfs dir >

源路徑有多個時,目標路徑必須為目錄,且必須存在。
注意:跨文件系統的移動(local到hdfs或者反過來)都是不允許的

count 命令

hadoop fs -count < hdfs path >

統計hdfs對應路徑下的目錄個數,文件個數,文件總計大小
顯示為目錄個數,文件個數,文件總計大小,輸入路徑


du 命令

hadoop fs -du < hdsf path> 

顯示hdfs對應路徑下每個文件夾和文件的大小

hadoop fs -du -s < hdsf path> 

顯示hdfs對應路徑下所有文件和的大小

hadoop fs -du - h < hdsf path> 

顯示hdfs對應路徑下每個文件夾和文件的大小,文件的大小用方便閱讀的形式表示,例如用64M代替67108864


text 命令

hadoop fs -text < hdsf file>

將文本文件或某些格式的非文本文件通過文本格式輸出


setrep 命令

hadoop fs -setrep -R 3 < hdfs path >

改變一個文件在hdfs中的副本個數,上述命令中數字3為所設置的副本個數,-R選項可以對一個人目錄下的所有目錄+文件遞歸執行改變副本個數的操作


stat 命令

hdoop fs -stat [format] < hdfs path >

返回對應路徑的狀態信息

[format]可選參數有:%b(文件大小),%o(Block大小),%n(文件名),%r(副本個數),%y(最后一次修改日期和時間)

可以這樣書寫hadoop fs -stat %b%o%n < hdfs path >,不過不建議,這樣每個字符輸出的結果不是太容易分清楚


tail 命令

hadoop fs -tail < hdfs file >

在標准輸出中顯示文件末尾的1KB數據


archive 命令

hadoop archive -archiveName name.har -p < hdfs parent dir > < src >* < hdfs dst >

命令中參數name:壓縮文件名,自己任意取;
< hdfs parent dir > :壓縮文件所在的父目錄;
< src >:要壓縮的文件名;
< hdfs dst >:壓縮文件存放路徑

*示例:hadoop archive -archiveName hadoop.har -p /user 1.txt 2.txt /des
示例中將hdfs中/user目錄下的文件1.txt,2.txt壓縮成一個名叫hadoop.har的文件存放在hdfs中/des目錄下,如果1.txt,2.txt不寫就是將/user目錄下所有的目錄和文件壓縮成一個名叫hadoop.har的文件存放在hdfs中/des目錄下

顯示har的內容可以用如下命令:

hadoop fs -ls /des/hadoop.jar

顯示har壓縮的是那些文件可以用如下命令

hadoop fs -ls -R har:///des/hadoop.har

注意:har文件不能進行二次壓縮。如果想給.har加文件,只能找到原來的文件,重新創建一個。har文件中原來文件的數據並沒有變化,har文件真正的作用是減少NameNode和DataNode過多的空間浪費。


balancer 命令

hdfs balancer

如果管理員發現某些DataNode保存數據過多,某些DataNode保存數據相對較少,可以使用上述命令手動啟動內部的均衡過程


dfsadmin 命令

hdfs dfsadmin -help

管理員可以通過dfsadmin管理HDFS,用法可以通過上述命令查看

hdfs dfsadmin -report

顯示文件系統的基本數據

hdfs dfsadmin -safemode < enter | leave | get | wait >

enter:進入安全模式;leave:離開安全模式;get:獲知是否開啟安全模式;
wait:等待離開安全模式


distcp 命令

用來在兩個HDFS之間拷貝數據


免責聲明!

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



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