bin/hadoop dfs–cmd <args>
1. cat
格式:hadoop dfs-cat URI [URI …]作用:将参数所指示的文件的内容输出到stdout。
示例:
hadoop dfs -cat hdfs:// nn1.example.com/file1 hdfs:// nn2.example.com/file2
hadoop dfs -cat file:/// file3 /user/hadoop/file4
返回值:成功结束返回0,出现错误返回-1。
2. chgrp
格式:hadoop dfs -chgrp [-R] GROUP URI [URI …]
作用:改变文件所属的用户组。如果使用-R 选项,则这一操作对整个目录结构递归执行。使用这一命令的用户必须是文件的所属用户,或者是超级用户
3. chmod
格式:hadoop dfs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI[URI …]
作用:改变文件的权限。如果使用-R 选项,则这一操作对整个目录结构递归执行。使用这一命令的用户必须是文件的所属用户,或者是超级用户。
4. chown
格式:hadoop dfs -chown [-R] [OWNER][,[GROUP]] URI [URI… ]
作用:改变文件的所属用户。如果使用-R 选项,则这一操作对整个目录结构递归执行。使用这一命令的用户必须是文件在命令变更之前的所属用户,或者是超级用户。
5. copyFromLocal
格式:hadoop dfs -copyFromLocal <localsrc> URI
作用:与put 命令类似,但是要限定源文件路径为本地文件系统。
6. copyToLocal
格式:hadoop dfs -copyToLocal [-ignorecrc] [-crc] URI
作用:与get 命令类似,但是要限定目标文件路径为本地文件系统。
7. count
格式:hadoop dfs -count [-q] <paths>
作用:统计匹配对应路径下的目录数,文件数,字节数(文件大小)。
选项意义:
使用-count 选项时,输出的列为:
DIR_COUNT, FILE_COUNT, CONTENT_SIZE,FILE_NAME
从左到右分别对应目录下已存在的目录数,文件数,文件大小,文件名使用-count-q 选项时,输出的列为:
QUOTA, REMAINING_QUOTA, SPACE_QUOTA, REMAINING_SPACE_QUOTA,
DIR_COUNT, FILE_COUNT, CONTENT_SIZE, FILE_NAME
从左到右的意义是:目录下最大允许文件+ 目录数(不存在上限,则为none),目录下可增加目录+ 文件数(不存在上限,则为inf),目录下最大允许空间(不存在上限,则为
none),目录下可用最大空间(不存在上限,则为inf);后面的几个和-count 选项一致,分别对应目录下已存在的目录数,文件数,文件大小,文件名。
hadoop HDFS有以下两种Quota
Name Quotas : 限制某个目录下的文件数量
Space Quotas : 设置某个目录的空间大小
$hadoop fs -count -q /user/hadoop
QUOTA REMAINING_QUOTA SPACE_QUOTA REMAINING_SPACE_QUOTA DIR_COUNT FILE_COUNT CONTENT_SIZE FILE_NAME
none inf none inf 2 1 180 /user/hadoop
QUOTA : 命名空间的quota(限制文件数) REMAINING_QUOTA : 剩余的命名空间quota(剩余能创建的文件数目) SPACE_QUOTA : 物理空间的quota (限制磁盘空间占用大小) REMAINING_SPACE_QUOTA : 剩余的物理空间 DIR_COUNT : 目录数目 FILE_COUNT : 文件数目 CONTENT_SIZE: 目录逻辑空间大小 FILE_NAME : 路径
8. cp
格式:hadoop dfs -cp URI [URI …] <dest>
作用:将文件拷贝到目标路径中。如果<dest> 为目录的话,可以将多个文件拷贝到该目录下。示例:
hadoop dfs -cp /user/hadoop/file1 /user/hadoop/file2
hadoop dfs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
返回值:成功结束返回0,出现错误返回-1。
9. du
格式:hadoop dfs -du [-s] [-h] URI [URI …]
作用:如果参数为目录,显示该目录下所有目录+ 文件的大小;如果参数为单个文件,则显示文件大小。
选项意义:
-s 指输出所有文件大小的累加和,而不是每个文件的大小。
-h 会将文件大小的数值用方便阅读的形式表示,比如用64.0M 代替67108864。示例:
- hadoop dfs -du /user/hadoop/dir1 /user/hadoop/file1\
- hdfs:// nn.example.com/user/hadoop/dir1
10. dus
格式:hadoop dfs -dus <args>
作用:显示文件的大小。这个命令等价于hadoop dfs -du-s。
11. expunge
格式:hadoop dfs -expunge
作用:清空回收站。如需更多有关回收站特性的信息,请参考其他资料和文献。
12. get
格式:hadoop dfs -get [-ignorecrc] [-crc] <src><localdst>
作用:将文件拷贝到本地文件系统。CRC 校验失败的文件可通过-ignorecrc 选项拷贝。
文件和CRC 校验和可以通过-crc 选项拷贝。
示例:
hadoop dfs -get /user/hadoop/file localfile
hadoop dfs -get hdfs:// nn.example.com/user/hadoop/file localfile
返回值:成功结束返回0,出现错误返回-1。
13. getmerge
格式:hadoop dfs -getmerge <src><localdst> [addnl]
作用:命令参数为一个源文件目录和一个目的文件。将源文件目录下的所有文件排序后合并到目的文件中。添加addnl 可以在每个文件后面插入新行。
14. ls
格式:hadoop dfs -ls <args>
作用:对于一个文件,该命令返回的文件状态以如下格式列出:
permissions number_of_replicas userid groupid filesize modification_date modification_time filename
从左到右的意义分别是:文件权限,副本个数,用户ID,组ID,文件大小,最近一次修改日期,最近一次修改时间,文件名。
对于一个目录,该命令返回这一目录下的第一层子目录和文件,与Unix 中ls 命令的结果类似;结果以如下状态列出:
permissions userid groupid modification_date modification_time dirname
从左到右的意义分别是:文件权限,用户ID,组ID,最近一次修改日期,最近一次修改时间,文件名。
- hadoop dfs -ls /user/hadoop/file1
格式:hadoop dfs -lsr <args>
作用:在整个目录下递归执行ls,与Unix 中的ls-R 类似。
16. mkdir
格式:hadoop dfs -mkdir <paths>
作用:以<paths> 中的URI 作为参数,创建目录。该命令的行为与Unix 中mkdir-p 的行为十分相似。这一路径上的父目录如果不存在,则创建该父目录。
示例:
- hadoop dfs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
- hadoop dfs -mkdir hdfs:// nn1.example.com/user/hadoop/dir
- hdfs:// nn2.example.com/user/hadoop/dir
17. moveFromLocal
格式:hadoop dfs -moveFromLocal <localsrc><dst>
作用:和put 命令类似,但是源文件localsrc 拷贝之后自身被删除。
18. moveToLocal
格式:hadoop dfs -moveToLocal [-crc] <src><dst>
作用:输出“Not implemented yet”信息,也就是说当前版本中未实现此命令。
19. mv
格式:hadoop dfs -mv URI [URI …] <dest>
作用:将文件从源路径移动到目标路径(移动之后源文件删除)。目标路径为目录的情况下,源路径可以有多个。跨文件系统的移动(本地到HDFS 或者反过来)
是不允许的。
示例:
- hadoop dfs -mv /user/hadoop/file1 /user/hadoop./file2
- hadoop dfs -mv hdfs:// nn.example.com/file1
- hdfs:// nn.example.com/file2
- hdfs:// nn.example.com/file3
- hdfs:// nn.example.com/dir1
返回值:成功结束返回0,出现错误返回-1。
20. put
格式:hadoop dfs -put <localsrc> … <dst>
作用:将单个的源文件src 或者多个源文件srcs 从本地文件系统拷贝到目标文件系统中(<dst> 对应的路径。也可以从标准输入中读取输入,写入目标文件系统中。
示例:
- hadoop dfs -put localfile /user/hadoop/hadoopfile
- hadoop dfs -put localfile1 localfile2 /user/hadoop/hadoopdir
- hadoop dfs -put localfile hdfs:// nn.example.com/hadoop/hadoopfile
- hadoop dfs -put - hdfs:// nn.example.com/hadoop/hadoopfile
格式:hadoop dfs -rm [-skipTrash] URI [URI …]
作用:删除参数指定的文件,参数可以有多个。此命令只删除文件和非空目录。如果指定了-skipTrash 选项,那么在回收站可用的情况下,该选项将跳过回收站而直接删除文 件;否则,在回收站可用时,在HDFS Shell 中执行此命令,会将文件暂时放到回收站中。这一选项在删除超过容量限制的目录(over-quota directory)中的文件时很有 用。需要递归删除时可参考rmr 命令。
示例:
- hadoop dfs -rm hdfs:// nn.example.com/file /user/hadoop/emptydir
格式:hadoop dfs -rmr [-skipTrash] URI [URI …]
作用:删除操作的递归版本,即递归删除所有子目录下的文件。如果指定了-skipTrash选项,那么在回收站可用的情况下,该选项将跳过回收站而直接删除文件;否则,在回收 站可用时,在HDFS Shell 中执行此命令,会将文件暂时放到回收站中。这一选项在删除超过容量限制的目录(over-quota directory)中的文件时很有用。
示例:
- hadoop dfs -rmr /user/hadoop/dir
- hadoop dfs -rmr hdfs:// nn.example.com/user/hadoop/dir
格式:hadoop dfs -setrep [-R] <path>
作用:改变一个文件在HDFS 中的副本个数。使用-R 选项可以对一个目录下的所有目录+ 文件递归执行改变副本个数的操作。
示例:
- hadoop dfs -setrep -w 3 -R /user/hadoop/dir1
格式:hadoop dfs -stat [format] URI [URI …]
作用:返回对应路径的状态信息。可以通过与C 语言中的printf 类似的格式化字符串定制输出格式,这里支持的格式字符有:
%b:文件大小
%o:Block 大小
%n:文件名
%r:副本个数
%y 或%Y:最后一次修改日期和时间
默认情况输出最后一次修改日期和时间。
示例:
- hadoop dfs -stat path
- hadoop dfs -stat “%n %b %o %y”path
25. tail
格式:hadoop dfs -tail [-f] URI
作用:在标准输出中显示文件末尾的1KB 数据。-f 的用法与Unix 类似,也就是说当文件尾部添加了新的数据或者做出了修改时,在标准输出中也会刷新显示。
示例:
- hadoop dfs -tail pathname
格式:hadoop dfs -test -[ezd] URI
作用:判断文件信息。
选项含义:
-e 检查文件是否存在,如果存在返回0。
-z 检查文件大小是否为0,是的话返回0。
-d 检查这一路径是否为目录,是的话返回0。
如果返回0 则不输出,否则会输出相应的信息。
示例:
- hadoop dfs -test -e filename
27. text
格式:hadoop dfs -text <src>
作用:将文本文件或者某些格式的非文本文件通过文本格式输出。允许的格式有zip 和TextRecordInputStream。
28. touchz
格式:hadoop dfs -touchz URI [URI …]
作用:创建一个大小为0 的文件。
示例:
- hadoop dfs -touchz pathname