Hadoop开发第6期---HDFS的shell操作
一、HDFS的shell命令简介
我们都知道HDFS 是存取数据的分布式文件系统,那么对HDFS 的操作,就是文件系统的基本操作,比如文件的创建、修改、删除、修改权限等,文件夹的创建、删除、重命名等。对HDFS 的操作命令类似于lLinux 的shell 对文件的操作,如ls、mkdir、rm 等。
我们在执行HDFS的shell操作的时候,一定要确定hadoop 是正常运行的,我们可以使用使用jps 命令确保看到各个hadoop 进程。
我们可以执行命令hadoop fs,来查看HDFS的shell操作的所有命令如下。
[root@hadoop ~]# hadoop fs
Usage: java FsShell
[-ls <path>]
[-lsr <path>]
[-du <path>]
[-dus <path>]
[-count[-q] <path>]
[-mv <src> <dst>]
[-cp <src> <dst>]
[-rm [-skipTrash] <path>]
[-rmr [-skipTrash] <path>]
[-expunge]
[-put <localsrc> ... <dst>]
[-copyFromLocal <localsrc> ... <dst>]
[-moveFromLocal <localsrc> ... <dst>]
[-get [-ignoreCrc] [-crc] <src> <localdst>]
[-getmerge <src> <localdst> [addnl]]
[-cat <src>]
[-text <src>]
[-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>]
[-moveToLocal [-crc] <src> <localdst>]
[-mkdir <path>]
[-setrep [-R] [-w] <rep> <path/file>]
[-touchz <path>]
[-test -[ezd] <path>]
[-stat [format] <path>]
[-tail [-f] <file>]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-chgrp [-R] GROUP PATH...]
[-help [cmd]]
二、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目的路径>  | 
 移动到本地  | 
| 
 -setrep  | 
 -setrep [-R] [-w] <副本数> <路径>  | 
 修改副本数量  | 
| 
 -mkdir  | 
 -mkdir <hdfs 路径>  | 
 创建空白文件夹  | 
| 
 -touchz  | 
 -touchz <文件路径>  | 
 创建空白文件  | 
| 
 -stat  | 
 -stat [format] <路径>  | 
 显示文件统计信息  | 
| 
 -tail  | 
 -tail [-f] <文件>  | 
 查看文件尾部信息  | 
| 
 -chmod  | 
 -chmod [-R] <权限模式> [路径]  | 
 修改权限  | 
| 
 -chown  | 
 -chown [-R] [属主][:[属组]]路径  | 
 修改属主  | 
| 
 -chgrp  | 
 -chgrp [-R] 属组名称 路径  | 
 修改属组  | 
| 
 -help  | 
 -help -help [命令选项]  | 
 帮助  | 
三、各命令选项的用法
1. ls 显示当前目录结构
(1) 该命令选项表示查看指定路径的当前目录结构,后面跟hdfs 路径,如果下图所示

我们解释一下每一行的内容格式:
① 首字母表示文件夹(如果是“d”)还是文件(如果是“-”);
② 后面的9 位字符表示权限;
③ 后面的数字或者“-”表示副本数。如果是文件,使用数字表示副本数;文件夹没有副本;
④ 后面的“root”表示属主;
⑤ 后面的“supergroup”表示属组;
⑥ 后面的“0”、“ 84927175”表示文件大小,单位是字节;
⑦ 后面的时间表示修改时间,格式是年月日时分;
⑧ 最后一项表示文件路径。
可见根目录下面有1个文件夹、1个文件。
(2) 如果该命令选项后面没有路径,那么就会访问/user/<当前用户>目录。我们使用root用户登录,因此会访问hdfs 的/user/root 目录,但是如果没有这个目录/user/root,会提示文件不存在的错误如图3.1所示,添加该目录后再次执行该命令如图3.2,3.3所示。

图 3.1

图 3.2

图 3.3
2. -lsr 递归显示目录结构
该命令选项表示递归显示当前路径的目录结构,后面跟hdfs 路径。如下图所示。
显示/user 目录下有个root 目录,root 目录下有文件hello
3. -du 统计目录下各文件大小
该命令选项显示指定路径下的文件大小,单位是字节,如下图所示

4. -dus 汇总统计目录下文件大小
该命令选项显示指定路径的文件大小,单位是字节,如下图所示

5. count 统计文件(夹)数量
该命令选项显示指定路径下的文件夹数量、文件数量、文件总大小信息,如下图所示

6. mv 移动
该命令选项表示移动hdfs 的文件到指定的hdfs 目录中。后面跟两个路径,第一个表示源文件,第二个表示目的目录。如下图所示

在上图中有三条命令,是为了体现移动前后的变化情况。
7. cp 复制
该命令选项表示复制hdfs 指定的文件到指定的hdfs 目录中。后面跟两个路径,第一个是被复制的文件,第二个是目的地。如下图所示

在上图中有三条命令,是为了体现复制前后的变化情况。
8. rm 删除文件/空白文件夹
该命令选项表示删除指定的文件或者空目录,如下图所示

在上图 中,前三条命令是为了体现执行前后的变化情况。第四条命令是删除非空的“/user”目录,操作失败,表明不能删除非空目录
9. rmr 递归删除
该命令选项表示递归删除指定目录下的所有子目录和文件,如下图所示

10. put 上传文件
该命令选项表示把linux 上的文件复制到hdfs 中,如下图所示

11. copyFromLocal 从本地复制到hdfs
操作与-put 一致,不再举例。
12. moveFromLocal 从本地移动到hdfs
该命令表示把文件从linux 上移动到hdfs 中,如下图所示

13. getmerge 合并到本地
该命令选项的含义是把hdfs 指定目录下的所有文件内容合并到本地linux 的文件中,如下图所示

14. cat 查看文件内容
该命令选项是查看文件内容,如下图所示

15. text 查看文件内容
该命令选项可以认为作用和用法与-cat 相同,此处略。
16. mkdir 创建空白文件夹
该命令选项表示创建文件夹,后面跟的路径是在hdfs 将要创建的文件夹,如下图所示

17. setrep 设置副本数量
(1) 该命令选项是修改已保存文件的副本数量,后面跟副本数量,再跟文件路径,如下图所示

在图3.17 中,我们修改了文件/file1的副本数,由1 修改为2,意味着多了一个副本,HDFS 会自动执行文件的复制工作,产生新的副本。
(2) 如果最后的路径表示文件夹,那么需要跟选项-R,表示对文件夹中的所有文件都修改副本,如下图所示

在上图中,我们对/user/root 文件夹进行的操作,使用了选项-R,那么/user/root 下的文件file2,file1 的副本数发生了改变。
(3) 还有一个选项是-w,表示等待副本操作结束才退出命令,下图所示

18. touchz 创建空白文件
该命令选项是在hdfs 中创建空白文件,如下图 所示
19. stat 显示文件的统计信息
该命令选项显示文件的一些统计信息,如下图所示

在上图中,命令选项后面可以有格式,使用引号表示。示例中的格式“%b %n %o%r %Y”依次表示文件大小、文件名称、块大小、副本数、访问时间
20. tail 查看文件尾部内容
该命令选项显示文件最后1K 字节的内容。一般用于查看日志。如果带有选项-f,那么当文件内容变化时,也会自动显示。如下图所示

21. chmod 修改文件权限
(1) 该命令选项的使用类似于linux 的shell 中的chmod 用法,作用是修改文件的权限,如下图所示
3
(2) 在图3.23中,修改了文件/emptyfile 的权限。如果加上选项-R,可以对文件夹中的所有文件修改权限,如下图所示

22. chown 修改属主
该命令选项表示修改文件的属主,如下图所示

(2) 上图中把文件/emptyfile 的属主由root 修改为sunddenly。也可以同时修改属组,如下图所示

在上图中,把文件/emptyfile 的属主和属组都修改为itcast,如果只修改属组,可以使用“:sunddenly”。如果带有选项-R,意味着可以递归修改文件夹中的所有文件的属主、属组信息
23. chgrp 修改属组
该命令的作用是修改文件的属组,该命令相当于“chown :属组”的用法,如下图所示
24. help 帮助
该命令选项会显示帮助信息,后面跟上需要查询的命令选项即可,如下图所示

在上图中,查询的rm 的用法
Hadoop开发第6期---HDFS的shell操作的更多相关文章
- 大数据:Hadoop(JDK安装、HDFS伪分布式环境搭建、HDFS 的shell操作)
		
所有的内容都来源与 Hadoop 官方文档 一.Hadoop 伪分布式安装步骤 1)JDK安装 解压:tar -zxvf jdk-7u79-linux-x64.tar.gz -C ~/app 添加到系 ...
 - HDFS02 HDFS的Shell操作
		
HDFS的Shell操作(开发重点) 目录 HDFS的Shell操作(开发重点) 基本语法 常用命令 准备工作 上传 -moveFromLocal 剪切 -copyFromLocal 拷贝 -put ...
 - Hadoop开发第3期---Hadoop的伪分布式安装
		
一.准备工作 1. 远程连接工具的安装 PieTTY 是在PuTTY 基础上开发的,改进了Putty 的用户界面,提供了多语种支持.Putty 作为远程连接linux 的工具,支持SSH 和telne ...
 - Hadoop读书笔记(二)HDFS的shell操作
		
Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 1.shell操作 1.1全部的HDFS ...
 - Hadoop(6)-HDFS的shell操作
		
1.基本语法 使用 hadoop fs 具体命令 或者 hdfs dfs 具体命令 hadoop命令的shell源码 hdfs命令的shell源码 由此可见,这两个命令最后都是执行的一个jav ...
 - Hadoop之HDFS的Shell操作
		
1.基本语法 bin/hadoop fs 具体命令 或者 bin/hdfs dfs 具体命令 dfs 是 fs 的实现类. 2.命令大全 [hadoop@hadoop102 hadoop-]$ bin ...
 - HDFS基本shell操作
		
在客户端输入Hadoop fs,可以查看所有的,hadoop shell # -help [cmd] //显示命令的帮助信息,如: hadoop fs -help ls # -ls(r) <pa ...
 - 【Hadoop离线基础总结】HDFS的API操作
		
HDFS的API操作 创建maven工程并导入jar包 注意 由于cdh版本的所有的软件涉及版权的问题,所以并没有将所有的jar包托管到maven仓库当中去,而是托管在了CDH自己的服务器上面,所以我 ...
 - Hadoop框架之HDFS的shell操作
		
既然HDFS是存取数据的分布式文件系统,那么对HDFS的操作,就是文件系统的基本操作,比如文件的创建.修改.删除.修改权限等,文件夹的创建.删除.重命名等.对HDFS的操作命令类似于Linux的she ...
 
随机推荐
- Git执行过程中出现问题及解决方法
			
not-fast-forward https://help.github.com/articles/dealing-with-non-fast-forward-errors/
 - Android图形显示之硬件抽象层Gralloc【转】
			
https://blog.csdn.net/yangwen123/article/details/12192401 FrameBuffer驱动程序分析文中介绍了Linux系统下的显示驱动框架,每个显示 ...
 - python set集合一些基本方法
			
set集合是一个无序且不重复的元素集合 这个数据类型没有重复的,而且也没有顺序 一些基本的方法: 添加元素 s1 = {11, 22, 33} s1.add(123)#添加一个新的元素 print(s ...
 - 【Linq】常用语法汇总
			
语言继承查询(Language Integrated Query, LINQ),在C#编程语言中集成了查询语法,可以用相同的语法访问不同的数据源,LINQ提供了不同数据源的抽象层,所以可以使用相同语法 ...
 - 使用 jekyll + github pages 搭建个人博客
			
1. 新建 github.io 项目 其实 github pages 有两个用途,大家可以在官方网页看到.其中一个是作为个人/组织的主页(每个账号只能有一个),另一个是作为 github 项目的项目主 ...
 - 2.3Python基础语法(三)之输入输出
			
返回总目录 目录: 1.input输入 2.print输出 (一)input输入 1.input的处理方式 # 输入input string = input("请输入一个字符串:" ...
 - JAVA基础|从Class.forName初始化数据库到SPI破坏双亲委托机制
			
代码托管在:https://github.com/fabe2ry/classloaderDemo 初始化数据库 如果你写过操作数据库的程序的话,可能会注意,有的代码会在程序的开头,有Class.for ...
 - Ecstore 默认图片压缩质量差的问题解决方法
			
修改app/image/lib/clip.php文件 }elseif( function_exists('imagecopyresampled')){ $quality = 80; $image_p ...
 - 1.Dubbo2.5.3源码编译
			
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.安装JAVA.Git.Maven 安装过程省略,请自行百度. 2.编译dubbo (1)从ht ...
 - 在react中使用intro.js的的一些经验
			
react逐渐热了起来,但是新的东西毕竟前辈的经验少一些,前段时间自己在react中用到intro.js时,得到的资料甚少,摸索后便将一些心得记录下来了~ 1 intro.js的引入,这一点请看上一篇 ...