HDFS中的shell操作

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显示的是该路径下文件的总大小。

原文地址:https://www.cnblogs.com/hjwq/p/7873641.html