FS Shell
文件系统 (FS) shell 包括各种类似的命令直接与 Hadoop Distributed File System (HDFS)交互。
FS shell被下面调用:
bin/hadoop fs <args>
-appendToFile
用法: hadoop fs -appendToFile localsrc> … dst>
功能:添加本地单个或多个本地文件追加到文件系统目标文件。
- hadoop fs -appendToFile localfile /user/hadoop/hadoopfile
-hadoop fs -appendToFile localfile1 localfile2 /user/hadoop/hadoopfile
-cat
用法: hadoop fs -cat [URI…]
功能:将路径指定文件的内容输出到stdout(终端)
- hadoop fs -cat hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
- hadoop fs -cat file:///file3 /user/hadoop/file4
-chgrp
用法: hadoop fs -chgrp [-R] GROUP URI [URI …]
功能:改变文件所属的组,使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。
- hadoop fs -chgrp [-R] group URI
- hadoop fs -chgrp -R hadoop /flume
-chmod
用法:hadoop fs -chmod [-R] <MODE[,MODE]… | OCTALMODE> URI [URI …]
功能:改变文件的权限,使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。
- hadoop fs -chmod -R 777 /flume
-chown
用法:hadoop fs -chown [-R] [OWNER] [ :[GROUP]] URI
功能:更改文件的所有者. 使用-R 将使改变在目录结构下递归进行。 必须是文件所有者或则超级用户。
- hadoop fs -chown -R hadoop_mapreduce:hadoop /flume
-copyFromLocal
用法:hadoop fs -copyFromLocal localsrc> URI(localRemote)
功能:和put命令的用法类似,除了源文件只能是本地,从linux文件系统或者其他文件系统拷贝文件至hdfs文件系统。
- hadoop fs -copyFromLocal /usr/huawei/app /flume/app
-copyToLocal
用法:hadoop fs -copyToLocal [-ignorecrc] [-crc] URI
功能:和get方法相似,除了目标文件仅限于本地文件,将hdfs文件系统的文件拷贝至linux文件系统或者其他文件系统。
- hadoop fs -copyToLocal ignorecrc -crc /flume/app /usr/huawei/app
-count
用法:hadoop fs -count paths>
功能:输出列:DIR_COUNT, FILE_COUNT, CONTENT_SIZE, PATHNAME
[目录个数,文件个数,总大小,路径名称]
用法:hadoop fs -count [-q] [-h] [-v] paths>
功能:-q --> QUOTA, REMAINING_QUATA, SPACE_QUOTA, REMAINING_SPACE_QUOTA, DIR_COUNT, FILE_COUNT, CONTENT_SIZE, PATHNAME
[配置,其余指标,空间配额,剩余空间定额,目录个数,文件个数,总大小,路径名称]
-h --> size可读模式。
-v --> 显示一个标题行。
-cp
用法:hadoop fs -cp [-f] [-p | URI [URI …] dest>
-f 选项如果文件已经存在将会被重写。
-p 选项保存文件属性。
功能:将文件从源路径复制到目标路径,允许多个源路径,目标路径只能有一个。
- hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
- hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
-du
用法: hadoop fs -du [-s] [-h] URI [URI …]
-s 选项汇总文件的长度,而不是现实单个文件。
-h 选项显示格式更加易读。
功能:显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小。如果指定一个目录,则显示出该目录下所有文件/文件夹的大小。
- hadoop fs -du /flume/app /flume/web
-dus
用法:hadoop fs -dus args>
功能:显示统计文件长度。
- hadoop fs -dus /flume/app
-expunge
用法:hadoop fs -expunge
功能:清空回收站。
-get
用法:hadoop fs -get [-ignorecrc] [-crc] src> localdst>
功能:复制文件到本地文件系统。可用-ignorecrc选项复制CRC校验失败的文件。使用-crc选项复制文件以及CRC信息。
- hadoop fs -get /user/hadoop/file localfile
- hadoop fs -get hdfs://host:port/user/hadoop/file localfile
-getfacl
用法:hadoop fs -getfacl [-R] path>
功能:显示文件和目录的访问控制列表(acl)。
- hadop fs -getfacl -R /flume
-getmerge
用法:hadoop fs -getmerge src> localdst> [addnl]
功能:接受一个源目录和一个目标文件作为输入,并且将源目录中所有的文件连接成本地目标文件。addnl是可选的,用于指定在每个文件结尾添加一个换行符。
- hadoop fs -getmerge /flume/app /usr/huawei/app
-ls -lsr
用法:hadoop fs -ls / -lsr args> -lsr是-ls查询目录的递归版
功能:如果是文件,则按照如下格式返回文件信息:
文件名 <副本数> 文件大小 修改日期 修改时间 权限 用户ID 组ID
如果是目录,则返回它直接子文件的一个列表,就像在Unix中一样。目录返回列表的信息如下:目录名 dir> 修改日期 修改时间 权限 用户ID 组ID
- hadoop fs -ls /user/hadoop
-mkdir
用法:hadoop fs -mkdir paths>
功能:接受路径指定的uri作为参数,创建这些目录。其行为类似于Unix的mkdir -p,它会创建路径中的各级父目录。
- hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
-movefromLocal
用法:hadoop fs -moveFromLocal src> dst>
功能:和put方法类似,从本地移动文件到hdfs。
- hadoop fs -moveFromLocal /usr/local/* /user/flume/
-moveToLocal
用法:hadoop fs -moveToLocal [-crc] src> dst>
功能:将hdfs文件移动到本地文件系统。
- hadoop fs -moveToLocal -crc /user/hadoop_hdfs/* /usr/local/
-mv
用法:hadoop fs -mv URI [URI …] dest>
功能:将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件。
- hadoop fs -mv /user/flume /user/hadoop
-put
用法:hadoop fs -put localsrc> … dst>
功能:从本地文件系统中复制单个或多个源路径到目标文件系统。也支持从标准输入中读取输入写入目标文件系统。
- hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile
-rm
用法:hadoop fs -rm URI [URI …]
功能:删除指定的文件。只删除空目录和文件。
- hadoop fs -rm hdfs://host:port/file /user/hadoop/emptydir
-rmr
用法:hadoop fs -rmr URI [URI …]
功能:-rm的递归版
- hadoop fs -rmr /user/hadoop/dir
-setrep
用法:hadoop fs -setrep [-R] [-w] numReplicas> path>
功能:改变一个文件的副本系数。-R选项用于递归改变目录下所有文件的副本系数。
- hadoop fs -setrep -R -w 3 /user/flume
-stat
用法:hadoop fs -stat URI [URI …]
功能:返回指定路径的统计信息。
- hadoop fs -stat/flume
-tail
用法:hadoop fs -tail [-f] URI
功能:将文件尾部1K字节的内容输出到stdout。支持-f选项,行为和Unix中一致。
- hadoop fs -tail /flume
-test
用法:hadoop fs -test -e -z -d URI
功能:测试检查目录或者文件是否存在。
- -e 检查文件是否存在。如果存在则返回0。
- -z 检查文件是否是0字节。如果是则返回0。
- -d 如果路径是个目录,则返回1,否则返回0。
-text
用法:hadoop fs -text src>
功能:源文件和输出文件为文本格式。允许的格式是zip和TextRecordInputStream。
-touchz
用法:hadoop fs -touchz URI [URI …]
功能:创建一个0字节的空文件。