Hadoop学习Day8---HDFS 的shell 操作

一、HDFS的shell命令简介

我们都知道HDFS 是存取数据的分布式文件系统,那么对HDFS 的操作,就是文件系统的基本操作,比如文件的创建、修改、删除、修改权限等,文件夹的创建、删除、重命名等。对HDFS 的操作命令类似于lLinux 的shell 对文件的操作,如ls、mkdir、rm 等。
我们在执行HDFS的shell操作的时候,一定要确定hadoop 是正常运行的,我们可以使用使用jps 命令确保看到各个hadoop 进程。
我们可以执行命令hadoop fs,来查看HDFS的shell操作的所有命令如下。
[[email protected] ~]# 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 路径,如果图3.1所示。

图 3.1

我们解释一下每一行的内容格式:
  首字母表示文件夹(如果是“d”)还是文件(如果是“-”);
    后面的9 位字符表示权限;
    后面的数字或者“-”表示副本数。如果是文件,使用数字表示副本数;文件夹没有副本;
    后面的“root”表示属主;
    后面的“supergroup”表示属组;
    后面的“0”、“ 84927175”表示文件大小,单位是字节;
    后面的时间表示修改时间,格式是年月日时分;
    最后一项表示文件路径。
可见根目录下面有1个文件夹、1个文件。



<2>如果该命令选项后面没有路径,那么就会访问/user/<当前用户>目录。我们使用root用户登录,因此会访问hdfs 的/user/root 目录,但是如果没有这个目录/user/root,会提示文件不存在的错误如图3.2所示,添加该目录后再次执行该命令如图3.3,3.4所示。

图 3.2

图 3.3

图 3.4



2. -lsr 递归显示目录结构


该命令选项表示递归显示当前路径的目录结构,后面跟hdfs 路径。如图3.5 所示。

图 3.5

显示/user 目录下有个root 目录,root 目录下有文件hello



3. -du 统计目录下各文件大小


该命令选项显示指定路径下的文件大小,单位是字节,如图3.6所示。

图 3.6



4. -dus 汇总统计目录下文件大小


该命令选项显示指定路径的文件大小,单位是字节,如图3.7所示。


图3.7

请读者比较图3.6与图3.7的区别,体会两个命令选项的不同含义。



5. count 统计文件(夹)数量


该命令选项显示指定路径下的文件夹数量、文件数量、文件总大小信息,如图3.8所示.。

图 3.8

在图4-6 中有两条命令,下面的命令是为了佐证上面命令的正确性的。



6.  mv 移动


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

图 3.9

在图3.9 中有三条命令,是为了体现移动前后的变化情况。



7. cp 复制


该命令选项表示复制hdfs 指定的文件到指定的hdfs 目录中。后面跟两个路径,第一个是被复制的文件,第二个是目的地。,如图3.10所示。.

图3.10

在图3.10中有三条命令,是为了体现复制前后的变化情况。?



8. rm 删除文件/空白文件夹


该命令选项表示删除指定的文件或者空目录,如图3.11 所示。.

图3.11

在图3.11 中,前三条命令是为了体现执行前后的变化情况。第四条命令是删除非空的“/user”目录,操作失败,表明不能删除非空目录。



9.  rmr 递归删除


该命令选项表示递归删除指定目录下的所有子目录和文件,如图3.12 所示。

图 3.12?



10. put 上传文件


该命令选项表示把linux 上的文件复制到hdfs 中,如图3.12所示。.

图 3.12



11. copyFromLocal 从本地复制到hdfs ------操作与-put 一致,不再举例。



12. moveFromLocal 从本地移动到hdfs


该命令表示把文件从linux 上移动到hdfs 中,如图3.13所示。

图 3.13



13.  getmerge 合并到本地


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


图3.14



14.  cat 查看文件内容


该命令选项是查看文件内容,如图3.15所示。


图3.15



15. text 查看文件内容


该命令选项可以认为作用和用法与-cat 相同,此处略。



16. mkdir 创建空白文件夹


该命令选项表示创建文件夹,后面跟的路径是在hdfs 将要创建的文件夹,如图3.16 所示。

图3.16



17. setrep 设置副本数量


<1>该命令选项是修改已保存文件的副本数量,后面跟副本数量,再跟文件路径,如图3.17所示。

图3.17

在图3.17 中,我们修改了文件/file1的副本数,由1 修改为2,意味着多了一个副本,HDFS 会自动执行文件的复制工作,产生新的副本。



<2>如果最后的路径表示文件夹,那么需要跟选项-R,表示对文件夹中的所有文件都修改副
本,如图3.18 所示


图3.18

在图3.18中,我们对/user/root 文件夹进行的操作,使用了选项-R,那么/user/root 下的文件file2,file1 的副本数发生了改变。



<3>还有一个选项是-w,表示等待副本操作结束才退出命令,如图3.19所示。

图3.19



18.  touchz 创建空白文件


该命令选项是在hdfs 中创建空白文件,如图3.20 所示。

图3.20



19. stat 显示文件的统计信息


该命令选项显示文件的一些统计信息,如图3.21所示。

图3.21

在图3.21 中,命令选项后面可以有格式,使用引号表示。示例中的格式“%b %n %o%r %Y”依次表示文件大小、文件名称、块大小、副本数、访问时间.



20. tail 查看文件尾部内容


该命令选项显示文件最后1K 字节的内容。一般用于查看日志。如果带有选项-f,那么当文件内容变化时,也会自动显示。如图3.22 所示。


图3.22



21.  chmod 修改文件权限


<1>该命令选项的使用类似于linux 的shell 中的chmod 用法,作用是修改文件的权限,如图3.23 所示。.

图3.23



<2>在图3.23中,修改了文件/emptyfile 的权限。如果加上选项-R,可以对文件夹中的所有文件修改权限,如图3.24 所示。.

图3.24



22. chown 修改属主


该命令选项表示修改文件的属主,如图3.25所示。

图3.25



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

图3.26

在图3.26中,把文件/emptyfile 的属主和属组都修改为itcast,如果只修改属组,可以
使用“:sunddenly”。
如果带有选项-R,意味着可以递归修改文件夹中的所有文件的属主、属组信息。



23. chgrp 修改属组


该命令的作用是修改文件的属组,该命令相当于“chown :属组”的用法,如图3.27所示。

图3.27?



24. help 帮助


该命令选项会显示帮助信息,后面跟上需要查询的命令选项即可,如图4-27 所示。

图3.28

在图3.28 中,查询的rm 的用法。

时间: 2024-10-02 07:17:57

Hadoop学习Day8---HDFS 的shell 操作的相关文章

大数据技术之_04_Hadoop学习_01_HDFS_HDFS概述+HDFS的Shell操作(开发重点)+HDFS客户端操作(开发重点)+HDFS的数据流(面试重点)+NameNode和SecondaryNameNode(面试开发重点)

第1章 HDFS概述1.1 HDFS产出背景及定义1.2 HDFS优缺点1.3 HDFS组成架构1.4 HDFS文件块大小(面试重点)第2章 HDFS的Shell操作(开发重点)第3章 HDFS客户端操作(开发重点)3.1 HDFS客户端环境准备3.2 HDFS的API操作3.2.1 HDFS文件上传(测试参数优先级)3.2.2 HDFS文件下载3.2.3 HDFS文件夹删除3.2.4 HDFS文件名更改3.2.5 HDFS文件详情查看3.2.6 HDFS文件和文件夹判断3.3 HDFS的I/O

HDFS的shell操作

既然HDFS 是存取数据的分布式文件系统,那么对HDFS的操作,就是对文件系统的基本操作,比如文件的创建.修改.删除.修改权限等,文件夹的创建.删除.重命名等.对 HDFS 的操作命令类似于Linux 的shell 对文件的操作,只是在HDFS中,hadoop fs是主命令,其他像ls,mv,cp都是被作为该命令的选项. 以下表格列出一些常用的HDFS shell命令选项. 选项名称 使用格式 含义 -ls -ls <路径> 查看指定路径的当前目录结构 -lsr -lsr <路径>

Hadoop集群hdfs添加磁盘操作

Hadoop集群hdfs添加磁盘操作 目前的环境是cdh.服务器部署在Azure:一个cdhmaster(一个namenode,一个datanode),四个cdhslave节点(各一个datanode). hdfs现状: 首先是在Azure控制台对每台服务器添加一块磁盘(我这添加的是4T) 在到服务器中对每台服务器进行添加磁盘操作: 因为在Linux中,常用2种分区表: MBR分区表(即主引导记录) 所支持的最大分区:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区 [fdisk

Hadoop读书笔记(二)HDFS的shell操作

Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 1.shell操作 1.1所有的HDFS shell操作命名可以通过hadoop fs获取: [[email protected] ~]# hadoop fs Usage: java FsShell [-ls <path>] [-lsr <path>] [-du <path>] [-dus <path>

Hadoop HDFS的Shell操作实例

本文发表于本人博客. 我们知道HDFS是Hadoop的分布式文件系统,那既然是文件系统那最起码会有管理文件.文件夹之类的功能吧,这个类似我们的Windows操作系统一样的吧,创建.修改.删除.移动.复制.修改权限等这些操作. 那我们现在来看看hadoop下是怎么操作的. 先输入hadoop fs命令,会看到如下输出: Usage: java FsShell [-ls <path>] [-lsr <path>] [-du <path>] [-dus <path>

hadoop 学习之hdfs shell命令

1.HDFS shell 1.0查看帮助  hadoop fs -help <cmd> 1.1上传  hadoop fs -put <linux上文件> <hdfs上的路径> 1.2查看文件内容  hadoop fs -cat <hdfs上的路径> 1.3查看文件列表  hadoop fs -ls / 1.4下载文件  hadoop fs -get <hdfs上的路径> <linux上文件>

Hadoop学习笔记之二 文件操作

HDFS分布式文件系统:优点:支持超大文件存储.流式访问.一次写入多次读取.缺点:不适应大量小文件.不适应低时延的数据访问.不适应多用户访问任意修改文件. 1.hadoop用于大数据处理,在数据量较小时,并不适用于实时性强的任务,并不是所有的job放到hadoop上,性能都会提升. 2.大量小文件的情况下会极大的降低系统的性能,所以处理前需要先将少文件聚合成大文件,map的输出也应该首先combine在传输给reduce. 3.数据传输时的IO开销,存储在内存中还是硬盘中,节点之间共享数据的分发

hadoop学习笔记-HDFS的REST接口

在学习HDFS的过程中,重点关注了HDFS的REST访问接口.以前对REST的认识非常笼统,这次通过对HDFS的REST接口进行实际操作,形成很直观的认识. 1? 写文件操作 写文件操作分为两个命令,第一个命令先产生一个重定向(TEMPORARY_REDIRECT)响应报文,响应报文中的Location字段即为重定向的目标地址,这个目标地址指向的就是分配的datanode,用以存储后面写入的内容.第二个命令的URL写的就是第一个命令重定向的目标地址.(注意:在路径前面需要加"/webhdfs/v

Hadoop学习&lt;四&gt;--HDFS的RPC通信原理总结

这里先写下自己学习RPC的笔记总结,下面将详细介绍学习过程: RPC(remote procedure call) 不同java进程间的对象方法的调用. 一方称作服务端(server),一方称作客户端(client). server端提供对象,供客户端调用的,被调用的对象的方法的执行发生在server端. RPC是hadoop框架运行的基础. 通过rpc小例子获得的认识? 1. 服务端提供的对象必须是一个接口,接口extends VersioinedProtocal 2. 客户端能够的对象中的方

【Hadoop学习】HDFS中的集中化缓存管理

Hadoop版本:2.6.0 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4146398.html 概述 HDFS中的集中化缓存管理是一个明确的缓存机制,它允许用户指定要缓存的HDFS路径.NameNode会和保存着所需快数据的所有DataNode通信,并指导他们把块数据缓存在off-heap缓存中. HDFS集中化缓存管理具有许多重大优势: 1.明确的锁定可以阻止频繁使用的数据被从内存中清除.当工作集