前言
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系
正文
可以通过命令行接口与 HDFS 系统进行交互,这样更加简单直观。
下面就介绍一些 HDFS 系统的常用操作命令。
ls
使用 ls 命令可以查看 HDFS 系统中的目录和文件。
例如,査看 HDFS 文件系统根目录下的目录和文件,命令如下:
hadoop fs -ls /
递归列出HDFS文件系统根目录下的所有目录和文件,命令如下
hadoop fs -ls -R /
get
将 HDFS 系统中的文件下载到本地,注意下载时的文件名不能与本地文件相同,否则会提示文件已存在。
下载多个文件或目录到本地时,要将本地路径设置为文件夹。
例如, 将 HDFS 根目录中 input 文件夹中的文件 a.txt 下载到本地,命令如下:
hadoop fs -get /input/a.txt /home/hadoop/
将 HDFS 根目录中的 input 文件夹下载到本地,命令如下:
hadoop fs -get /input/ /home/hadoop/
注意:如果用户没有root权限,则本地路径要为用户文件夹下的路径,否则会出现权限问题。
put
将本地文件上传到 HDFS 系统中。
例如,将本地文件 a.txt 上传到 HDFS 的 input 文件夹中,命令如下
hadoop fs -put a.txt /input/
moveFromLocal
将本地文件移动到 HDFS 系统中,可以一次移动多个文件。与 put 命令类似,不同的是该命令执行后源文件将被删除。
例如,将本地文件 a.txt 移动到 HDFS 的 input 文件夹中,命令如下:
hadoop fs -moveFromLocal a.txt /input/
rm
删除 HDFS 系统中的文件或文件夹,每次可以删除多个文件或目录。
例如,删除 HDFS 中 input 文件夹中的文件 a.txt,命令如下:
hadoop fs -rm /input/a.txt
mkdir
在HDFS系统中创建文件或目录。
例如,在HDFS根目录下创建文件夹 input,命令如下:
hadoop fs -mkdir /input/
也可使用 -p 参数,创建多级目录,如果父目录不存在,则会自动创建父目录。命令如下:
hadoop fs -mkdir -p /input/file
cp
拷贝文件到另一个文件,相当于给文件重命名并保存,但源文件还存在。
例如,将 a.txt 拷贝到 b.txt,并保留 a.txt,命令如下
hadoop fs -cp a.txt b.txt
mv
移动文件到另一个文件,相当于给文件重命名并保存,源文件已不存在。
例如,将 a.txt 移动到 b.txt,命令如下:
hadoop fs -mv a.txt b.txt