操作HDFS文件命令的两种格式:
hadoop fs -ls /
hdfs dfs -ls /
一般我们是使用第二个。
下面我们一起看一下 hdfs dfs的一些常见命令:
直接查看帮助手册
hdfs dfs 回车
[hadoop@vm01 ~]$ hdfs dfs
Usage: hadoop fs [generic options]
[-appendToFile <localsrc> ... <dst>]
[-cat [-ignoreCrc] <src> ...]
[-checksum <src> ...]
[-chgrp [-R] GROUP PATH...]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-copyFromLocal [-f] [-p] [-l] <localsrc> ... <dst>]
[-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-count [-q] [-h] [-v] <path> ...]
[-cp [-f] [-p | -p[topax]] <src> ... <dst>]
[-createSnapshot <snapshotDir> [<snapshotName>]]
[-deleteSnapshot <snapshotDir> <snapshotName>]
[-df [-h] [<path> ...]]
[-du [-s] [-h] <path> ...]
[-expunge]
[-find <path> ... <expression> ...]
[-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-getfacl [-R] <path>]
[-getfattr [-R] {-n name | -d} [-e en] <path>]
[-getmerge [-nl] <src> <localdst>]
[-help [cmd ...]]
[-ls [-d] [-h] [-R] [<path> ...]]
[-mkdir [-p] <path> ...]
[-moveFromLocal <localsrc> ... <dst>]
[-moveToLocal <src> <localdst>]
[-mv <src> ... <dst>]
[-put [-f] [-p] [-l] <localsrc> ... <dst>]
[-renameSnapshot <snapshotDir> <oldName> <newName>]
[-rm [-f] [-r|-R] [-skipTrash] <src> ...]
[-rmdir [--ignore-fail-on-non-empty] <dir> ...]
[-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
[-setfattr {-n name [-v value] | -x name} <path>]
[-setrep [-R] [-w] <rep> <path> ...]
[-stat [format] <path> ...]
[-tail [-f] <file>]
[-test -[defsz] <path>]
[-text [-ignoreCrc] <src> ...]
[-touchz <path> ...]
[-usage [cmd ...]]
Generic options supported are
-conf <configuration file> specify an application configuration file
-D <property=value> use value for given property
-fs <local|namenode:port> specify a namenode
-jt <local|resourcemanager:port> specify a ResourceManager
-files <comma separated list of files> specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars> specify comma separated jar files to include in the classpath.
-archives <comma separated list of archives> specify comma separated archives to be unarchived on the compute machines.
The general command line syntax is
bin/hadoop command [genericOptions] [commandOptions]
大部分我们一看就明白,其实基本跟linux基本命令是一样的,下面只列举几个特有的:
[-copyFromLocal [-f] [-p] [-l] <localsrc> ... <dst>]
[-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-put [-f] [-p] [-l] <localsrc> ... <dst>]
[-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
这两组命令,通过后面的选项其实就已经知道,他们是一回事,分别是linux本地文件到hdfs文件系统的上传和下载
上传文件到hdfs
[hadoop@vm01 ~]$ hdfs dfs -copyFromLocal /home/hadoop/a.txt /test/
[hadoop@vm01 ~]$ hdfs dfs -put /home/hadoop/a.txt /test/
下载文件到linux本地
[hadoop@vm01 ~]$ hdfs dfs -copyToLocal /test/a.txt /home/hadoop/
[hadoop@vm01 ~]$ hdfs dfs -get /test/a.txt /home/hadoop/
查看文件系统状态
[hadoop@vm01 ~]$ hdfs dfsadmin -report
[hadoop@vm01 ~]$ hdfs fsck /
查看/tools目录或文件的信息
hdfs dfs -stat [format] /tools
format参数:
%b(文件大小)
%o(Block大小)
%n(文件名)
%r(副本个数)
%y(最后一次修改日期和时间)
可以这样书写hadoop fs -stat %b%o%n < hdfs path >