您可以在已经创建好的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)介绍。