购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.5 Hadoop HDFS文件操作命令

对于HDFS文件系统的基本操作,可以通过HDFS命令行实现。在集群服务器的终端,通过hdfs dfs命令即可完成对HDFS目录及文件的管理操作,包括创建目录、上传与下载文件、查看文件内容、删除文件等。

2.5.1 创建目录

在集群服务器的终端,输入hdfs dfs命令,按Enter键回车后将看到hdfs dfs相关命令的帮助,其中的[-mkdir [-p] <path>...]即可用于创建目录,参数<path>可用于指定创建的新目录。在HDFS中创建/user/dfstest目录,如代码清单2-25所示。

代码清单2-25 创建目录命令
hdfs dfs -mkdir /user/dfstest

查看在HDFS文件目录/user/下的文件列表,结果如图2-59所示,可查看到新创建的目录。

图2-59 创建新目录

使用hdfs dfs -mkdir <path>命令只能逐级地创建目录,如果父目录不存在,那么使用该命令将会报错。例如,创建/user/test/example目录,若example的父目录test不存在,则执行 hdfs dfs -mkdir /user/test/example 命令将会报错。若加上参数-p,则可以同时创建多级目录,如代码清单2-26所示,同时创建父目录test和子目录example。

代码清单2-26 创建多级目录
hdfs dfs -mkdir -p /user/test/example

2.5.2 上传和下载文件

创建了新目录/user/dfstest后,即可向该目录上传文件。通过hdfs dfs命令查看上传文件操作的相关命令帮助,如表2-6所示。

表2-6 文件上传命令

有一份关于英文语句的文件a.txt,文件内容如表2-7所示。将a.txt文件上传至master中。以master中的a.txt文件为例,我们分别使用如表2-6所示的3个命令将master中的本地文件a.txt上传至HDFS的/user/dfstest目录下,如代码清单2-27所示,其中最后两个命令对上传至HDFS的文件进行了重命名。

表2-7 a.txt

代码清单2-27 文件上传命令
hdfs dfs -copyFromLocal a.txt /user/dfstest
hdfs dfs -put a.txt /user/dfstest/c.txt
hdfs dfs -moveFromLocal a.txt /user/dfstest/b.txt

执行代码清单2-27后,在/user/dfstest目录下可以看到如图2-60所示的3个文件。注意,在代码清单2-27所示的第3条命令中,moveFromLocal选项是将本地文件移动到HDFS,即执行命令后Linux系统本地文件a.txt将被删除。

图2-60 文件上传后的结果

同理,通过hdfs dfs命令可以查看下载文件操作的相关命令帮助,如表2-8所示。

表2-8 文件下载命令

分别使用表2-8中的两个命令下载HDFS的/user/dfstest目录中的a.txt和c.txt文件至Linux本地目录/data/hdfs_test/中,如代码清单2-28所示。

代码清单2-28 文件下载命令
hdfs dfs -copyToLocal /user/dfstest/a.txt /data/hdfs_test/
hdfs dfs -get /user/dfstest/c.txt /data/hdfs_test/

2.5.3 查看文件内容

当用户想查看某个文件内容时,可以直接使用HDFS命令。HDFS提供了两种查看文件内容的命令,如表2-9所示。

表2-9 查看文件内容命令

分别使用表2-9中的两种命令查看HDFS的/user/dfstest目录下的a.txt和b.txt文件的具体内容,如代码清单2-29所示。

代码清单2-29 查看文件内容命令
hdfs dfs -cat /user/dfstest/a.txt
hdfs dfs -tail /user/dfstest/b.txt

执行结果如图2-61所示。

图2-61 查看文件内容命令

2.5.4 删除文件或目录

当HDFS上的某个文件或目录被确认不再需要时,可以选择删除,释放HDFS的存储空间。在HDFS的命令帮助文档中,HDFS主要提供了两种删除文件或目录的命令,如表2-10所示。

表2-10 删除文件命令

先在HDFS的/user/dfstest目录下创建一个测试目录rmdir,再使用如表2-10所示的两种命令分别删除/user/dfstest目录下的c.txt文件和新创建的rmdir目录,如代码清单2-30所示。

代码清单2-30 删除文件命令
hdfs dfs -mkdir /user/dfstest/rmdir
hdfs dfs -rm /user/dfstest/c.txt
hdfs dfs -rmdir /user/dfstest/rmdir

在执行删除命令后,查看HDFS的/user/dfstest目录下的内容,结果如图2-62所示,说明已成功删除c.txt文件和rmdir目录。

图2-62 删除文件后的目录 TDkuYfHZp5BN/Q10jjKfDY0FxJdJY6y6qF/YC4RwqfCTs7FTzFQeG3Bonb0XJw0T

点击中间区域
呼出菜单
上一章
目录
下一章
×