概述
文件系統(FS)shell包含了一系列的與shell相似的命令,很多都對應着Unix中的命令,這些命令可以直接與Hadoop分佈式文件系統(HDFS)以及Hadoop支持的其他文件系統,如本地FS、HFTP、S3等進行交互。可以通過如下方法調用:bin/hadoop fs <args>
。args都是以路徑URI作爲參數,本篇文章都是基於HDFS來介紹說明的。
一個HDFS中的文件或目錄的格式大致是這樣:hdfs://namenodehost/test/a.txt
。namenodehost即爲NameNode節點的主機名。如果你的Hadoop安裝目錄…/hadoop/etc/hadoop/core-site.xml的文件中有如下配置,那麼在操作一個文件或目錄時,可以省掉前綴,即/test/a.txt。
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenodehost</value>
</property>
命令
ls
返回指定文件或指定目錄下所有文件的權限、副本數、所屬用戶組等信息。
示例:hadoop fs -ls /test/
cat
顯示文件內容到標準輸出。
示例:
hadoop fs -cat /test/src.txt 顯示文件src.txt的所有內容
hadoop fs -cat /test/src.txt | less 對於內容較多的文件可以用less上下翻頁
cp
拷貝文件從源地址到目標地址。允許拷貝一次拷貝多個文件到目標目錄下。
示例:hadoop fs -cp /test/src.txt /test/des.txt 拷貝時可以改變文件名
mv
將文件或目錄從源地址移動到目標地址。
示例:hadoop fs -mv /test/src.txt /test2/
touchz
創建一個空文件。
示例:hadoop fs -touchz /test/src.txt
mkdir
創建目錄。
示例:
hadoop fs -mkdir /test/dir 創建目錄dir
hadoop fs -mkdir -p /test/dir1/dir2/dir3 遞歸地創建dir1、dir2和dir3
rm
刪除指定的文件。
示例:
hadoop fs -rm /test/des.txt 刪除文件des.txt
hadoop fs -rm -r /test 遞歸地刪除test目錄以及test下面的所有目錄和文件(慎用啊!)。
rmr
遞歸地刪除文件和目錄。此命令已被棄用,代替使用-rm -r。
rmdir
刪除指定目錄。
示例:hadoop fs -rmdir /test
get
拷貝HDFS中的文件到本地文件系統。
示例:hadoop fs -get /test/src.txt . 拷貝src.txt文件到本地文件系統的當前目錄下
put
拷貝本地文件系統中的文件到HDFS上。
示例:hadoop fs -put src.txt /test/
copyFromLocal
功能和put類似,除了要求源文件一定要是本地文件。
copyToLocal
功能和get類似,除了目標文件要是本地文件引用。
moveFromLocal
功能類似put,除了拷貝之後會刪除源文件。
moveToLocal
目前無法使用,執行命令會顯示 “Not implemented yet” 。
df
顯示文件系統空間佔用情況。
示例:hadoop fs -df -h /test/src.txt
Filesystem Size Used Available Use%
hdfs://nnhost 5T 2.1T 2.9T 42%
du
顯示文件大小,或者目錄中所有文件大小。
示例:
hadoop fs -du -h /test/src.txt 顯示文件大小
hadoop fs -du -h /test/ 依次顯示目錄下所有文件的大小
find
顯示指定目錄下匹配指定表達式的所有文件。
示例:hadoop fs -find /test -name “*.txt” 顯示/test目錄下所有以.txt結尾的文件
count
依次顯示URI下面的總的目錄數、文件數和字節數。
示例:hadoop fs -count /test/
目錄數 文件數 字節數
50000 10000 409600000
tail
顯示文件的最後一kb到標準輸出。
示例:hadoop fs -tail /test/src.txt
chmod
修改文件的權限。
示例:
hadoop fs -chmod 744 /test/src.txt 修改文件src.txt的權限爲r+w+x
hadoop fs -chmod -R 744 /test/ 遞歸地修改test目錄及其子目錄下所有文件的權限
chown
修改文件所屬的用戶
示例:hadoop fs -chown [-R] owner:group /test/src.txt
checksum
查看文件的校驗信息。
示例:hadoop fs -checksum /test/src.txt