HDFS文件系统:
HDFS 是存取数据的分布式文件系统,那么对 HDFS 的操作,就是文件系统的基本操作,比如文件的创建、修改、删除、修改权限等,文件夹的创建、删除、重命名等。对HDFS 的操作命令类似于 lLinux 的 shell 对文件的操作,如 ls、mkdir、rm 等。
我们执行以下操作的时候,一定要确定 hadoop 是正常运行的,使用 jps 命令确保看到各个hadoop进程。
我们执行命令 hadoop fs,如图 4-1 所示
这里的命令并不是很全,下表中的命令是所有的HDFS-shell支持的命令:
选项名称 | 使用格式 | 含义 |
-ls | -ls<路径> | 查看指定目录的当前目录结构 |
-lsr | -lsr<路径> | 递归查看指定路径的目录结构 |
-du | -du<路径> | 统计目录下文件大小 |
-dus | -dus<路径> | 汇总统计目录下文件(夹)大小 |
-count | -count[-q]<路径> | 统计文件夹数量 |
-mv | -mv<源路径><目的路径> | 移动 |
-cp | -cp<源路径><目的路径> | 复制 |
-rm | -rm[-skipTrash]<路径> | 删除文件或者空白文件夹 |
-rmr | -rmr[-skipTrash]<路径> | 递归删除 |
-put | -put[多个linux上的文件><hdfs路径> | 上传文件 |
-copyFromLocal | -copyFromLocal<多个linux上的文件><hdfs路径> | 从本地复制 |
-moveFromLocal | -moveFromLocal<多个linux上的文件><hdfs路径> | 从本地移动 |
-getmerge | -getmerge<源路径><linux路径> | 合并到文件 |
-cat | -cat<hdfs文件内容> | 查看文件内容 |
-text | -text<hdfs文件内容> | 查看文件内容 |
-copyToLocal | -copyToLocal[-ignoreCrc][-crc][hdfs源路径][linux目的路径] | 从本地复制 |
-moveToLocal | -moveToLocal [-crc] <hdfs 源路径> <linux目的路径> | 从本地移动 |
-mkdir | -mkdir<hdfs路径> | 创建空白文件夹 |
-setrep | -setrep[-r][-w]<副本数><路径> | 修改副本文件 |
-touchz | -touchz<文件路径> | 创建空白文件 |
-stat | -stat[format]<路径> | 显示文件统计信息 |
-tail | -tail[-f]<文件> | 查看文件尾部信息 |
-chmod | -chmod[-R]<权限模式>[路径] | 修改权限 |
-chown | -chown[-R][属主][:[属组]]路径 | 修改属主 |
-chgrp | -chgrp[-R] 属组名称 路径 | 修改属组 |
-help | -help [命令选项] | 帮助 |
-ls 显示当前目录结构
查看指定路径的当前目录结构,后面跟hdfs路径,如图:
上图中的路径是hdfs的根目录,显示的文件目录与linux的命令-ls -l显示的内容格式非常相似,下面解析每一行的内容格式:
- 首字母表示文件夹还是文件,“d”表示文件夹,“-”表示文件;
- 后面的九位字符表示权限;
- 后面的数字或者是“-”表示副本数。如果是文件,使用数字表示副本数,文件夹没有副本;
- 后面的root表示属主;
- root后面的supergroup表示属组;
- 后面的0/6176/37645表示文件的大小,单位是字节;
- 后面的时间表示修改时间,时间表示年月日时分;
- 最后一项表示文件的路径;
注意:如果该命令选项后面没有路径,那么就会访问/user/<当前用户>目录,比如说,我们使用的是root用户登录,因此会访问/user/root/目录,如果没有/user/root/,会提示文件不存在的错误。
-lsr 递归的显示目录结构
表示递归的显示当前路径下的目录结构,后面跟hdfs路径,如图:
在user/目录下有文件abc,有个目录root。
-du 统计目录下各文件大小
该命令选项显示指定路径下的文件大小,单位是字节,如图:
-dus汇总统计目录下文件大小
该命令显示指定路径的文件大小,单位是字节,如图:
比较-du和-dus的执行结果,-du显示的是该路径下所有文件的大小,-dus显示的是该路径下文件的总大小。