您可以在已经创建好的 E-MapReduce(简称 EMR)集群中,直接使用 hadoop fs 命令来对 HDFS 中的文件进行操作。本文为您介绍 HDFS 的常见命令。
背景信息
HDFS 常见命令如下表所示。
|
命令 |
功能 |
|
在 HDFS 文件系统中创建目录。 |
|
|
在 HDFS 文件系统中新建一个空文件。 |
|
|
在文件或者目录创建完之后,您可以查看指定路径下的文件或目录信息。在查看文件或目录信息的时候需要给出绝对路径。 |
|
|
上传本地文件到 HDFS 的指定路径。 |
|
|
显示文件的大小或者目录中所有文件的大小。 |
|
|
查看 HDFS 上文件的内容。 |
|
|
在 HDFS 系统中,复制文件或目录到目标路径,并且保持源文件内容或目录结构不变。此命令允许有多个源路径,此时目标路径必须是一个目录。 |
|
|
在 HDFS 系统中,移动文件或目录到目标路径,并且不保留源文件内容或目录结构。此命令允许有多个源路径,此时目标路径必须是一个目录。 |
|
|
下载 HDFS 指定路径的文件到本地路径。 |
|
|
删除 HDFS 系统中指定的文件。 |
|
|
递归删除 HDFS 系统中指定的目录及其文件。 |
关于 Apache Hadoop 的详细介绍,请参见 Apache Hadoop 官网 。
mkdir
在 HDFS 文件系统中创建目录。
-
语法
hadoop fs -mkdir <path1> [path2] ... [pathn] -
示例:
-
在 HDFS 文件系统中,创建 dir 目录。
hadoop fs -mkdir /dir您可以通过
hadoop fs -ls /命令查看创建的目录。 -
在 dir 目录下,创建 sub-dir 目录。
hadoop fs -mkdir /dir/sub-dir您可以通过
hadoop fs -ls /dir/命令查看创建的目录。
-
touchz
在 HDFS 文件系统中新建一个空文件。
-
语法
hadoop fs -touchz URI [URI ...] -
示例:在 HDFS 文件系统中新建 /dir/ 目录下的 emptyfile.txt 文件。
hadoop fs -touchz /dir/emptyfile.txt您可以通过
hadoop fs -ls /dir/命令查看新建的文件。
ls
在文件或者目录创建完之后,您可以查看指定路径下的文件或目录信息。在查看文件或目录信息的时候需要给出绝对路径。
hadoop fs 没有进入某个目录下的概念。
-
语法
hadoop fs -ls <path> -
示例:查看 /dir/sub-dir 目录的信息。
hadoop fs -ls /dir/sub-dir
put
上传本地文件到 HDFS 的指定路径。
-
语法
hadoop fs -put <path1> <path2> -
示例:上传本地文件 hello.txt 至 HDFS 的 /dir/sub-dir 路径下。
hadoop fs -put hello.txt /dir/sub-dir您可以通过
hadoop fs -ls /dir/sub-dir命令查看文件上传的情况。
du
显示文件的大小或者目录中所有文件的大小。
-
语法
hadoop fs -du <path> -
示例
-
查看文件的大小。
hadoop fs -du /hello.txt -
查看目录下所有文件的大小。
hadoop fs -du /dir
-
cat
查看 HDFS 上文件的内容。
-
语法
hadoop fs -cat <path> -
示例:
-
查看 hello.txt 文件的内容。
hadoop fs -cat /hello.txt -
查看 /dir/sub-dir/ 目录下 hello_world.txt 文件的内容。
hadoop fs -cat /dir/sub-dir/hello_world.txt
-
cp
在 HDFS 系统中,复制文件或目录到目标路径,并且保持源文件内容或目录结构不变。此命令允许有多个源路径,此时目标路径必须是一个目录。
您也可以使用此命令对文件重命名,以保留源文件或目录。
-
语法
hadoop fs -cp <path1> <path2> -
示例:复制 /dir/sub-dir/ 目录下的文件 hello_world.txt 至 /tmp 目录下。
hadoop fs -cp /dir/sub-dir/hello_world.txt /tmp您可以通过
hadoop fs -ls /tmp命令查看文件复制的情况。
mv
在 HDFS 系统中,移动文件或目录到目标路径,并且不保留源文件内容或目录结构。此命令允许有多个源路径,此时目标路径必须是一个目录。
-
语法
hadoop fs -mv <path1> <path2> -
示例
-
移动 /tmp/ 目录下的文件 hello_world2.txt 至 /dir/sub-dir/ 目录下。
hadoop fs -mv /tmp/hello_world2.txt /dir/sub-dir/您可以通过
hadoop fs -ls /dir/sub-dir/命令查看文件移动的情况。 -
移动 /tmp/ 路径下的 test 目录至 /dir/sub-dir/ 目录下。
hadoop fs -mv /tmp/test /dir/sub-dir/您可以通过
hadoop fs -ls /tmp/命令查看目录移动的情况。
-
get
下载 HDFS 指定路径的文件到本地路径。
-
语法
hadoop fs -get <path1> <path2> -
示例:下载 HDFS 系统中 /dir/sub-dir/ 目录下的文件 hello_world2.txt 至本地的 /emr 路径下。
hadoop fs -get /dir/sub-dir/hello_world2.txt /emr您可以通过
ls命令查看文件下载的情况。
rm
删除 HDFS 系统中指定的文件。
-
语法
hadoop fs -rm <path> -
示例:删除 HDFS 系统中 /dir/sub-dir/ 目录下的文件 hello_world2.txt 。
hadoop fs -rm /dir/sub-dir/hello_world2.txt您可以通过
hadoop fs -ls /dir/sub-dir/命令查看文件删除的情况。
rmr
递归删除 HDFS 系统中指定的目录及其文件。
-
语法
hadoop fs -rmr <path> -
示例:递归删除 HDFS 系统中 /dir/ 下的 sub-dir 目录及其文件。
hadoop fs -rmr /dir/sub-dir/您可以通过
hadoop fs -ls /dir/命令查看目录删除的情况。
相关文档
如果您的集群开启了高可用,请参见 HDFS 高可用相关命令(HaAdmin)介绍 。