热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hadoop框架之HDFS的shell操作

既然HDFS是存取数据的分布式文件系统,那么对HDFS的操作,就是文件系统的基本操作,比如文件的创建、修改、删除、修改权限等,文件夹的创建、删除、重命名等。对HDFS的操作命令类似于Linux的she

既然HDFS是存取数据的分布式文件系统,那么对HDFS的操作,就是文件系统的基本操作,比如文件的创建、修改、删除、修改权限等,文件夹的创建、删除、重命名等。对HDFS的操作命令类似于Linux的shell对文件的操作,如ls、mkdir、rm等。

我们执行以下操作的时候,一定要确定hadoop是正常运行的,使用jps命令确保看到各个hadoop进程。

我们执行命令hadoop fs,如图4-1所示。

图4-1

图中显示了很多命令选项信息。以上截图不全,我在表格4-1中完整地列出了支持的命令选项。

选项名称

使用格式

含义

-ls

-ls <路径>

查看指定路径的当前目录结构

-lsr

-lsr <路径>

递归查看指定路径的目录结构

-du

-du <路径>

统计目录下个文件大小

-dus

-dus <路径>

汇总统计目录下文件(夹)大小

-count

-count [-q] <路径>

统计文件(夹)数量

-mv

-mv <源路径> <目的路径>

移动

-cp

-cp <源路径> <目的路径>

复制

-rm

-rm [-skipTrash] <路径>

删除文件/空白文件夹

-rmr

-rmr [-skipTrash] <路径>

递归删除

-put

-put <多个linux上的文件>

上传文件

-copyFromLocal

-copyFromLocal <多个linux上的文件>

从本地复制

-moveFromLocal

-moveFromLocal <多个linux上的文件>

从本地移动

-getmerge

-getmerge <源路径>

合并到本地

-cat

-cat

查看文件内容

-text

-text

查看文件内容

-copyToLocal

-copyToLocal [-ignoreCrc] [-crc] [hdfs源路径] [linux目的路径]

从本地复制

-moveToLocal

-moveToLocal [-crc]

从本地移动

-mkdir

-mkdir

创建空白文件夹

-setrep

-setrep [-R] [-w] <副本数> <路径>

修改副本数量

-touchz

-touchz <文件路径>

创建空白文件

-stat

-stat [format] <路径>

显示文件统计信息

-tail

-tail [-f] <文件>

查看文件尾部信息

-chmod

-chmod [-R] <权限模式> [路径]

修改权限

-chown

-chown [-R] [属主][:[属组]] 路径

修改属主

-chgrp

-chgrp [-R] 属组名称 路径

修改属组

-help

-help [命令选项]

帮助

注意:以上表格中路径包括hdfs中的路径和linux中的路径。对于容易产生歧义的地方,会特别指出“linux路径”或者“hdfs路径”。如果没有明确指出,意味着是hdfs路径。

下面我们讲述每个命令选项的用法。

-ls 显示当前目录结构

该命令选项表示查看指定路径的当前目录结构,后面跟hdfs路径,如图4-1所示。

 

图4-1

上图中的路径是hdfs根目录,显示的内容格式与linux的命令ls –l显示的内容格式非常相似,下面解析每一行的内容格式:

l 首字母表示文件夹(如果是“d”)还是文件(如果是“-”);

l 后面的9位字符表示权限;

l 后面的数字或者“-”表示副本数。如果是文件,使用数字表示副本数;文件夹没有副本;

l 后面的“root”表示属主;

l 后面的“supergroup”表示属组;

l 后面的“0”、“6176”、“37645”表示文件大小,单位是字节;

l 后面的时间表示修改时间,格式是年月日时分;

l 最后一项表示文件路径。

可见根目录下面有四个文件夹、两个文件。

如果该命令选项后面没有路径,那么就会访问/user/<当前用户>目录。我们使用root用户登录,因此会访问hdfs的/user/root目录,如图4-2所示。

 

图4-2

如果没有这个目录/user/root,会提示文件不存在的错误。

-lsr 递归显示目录结构

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

 

图4-3

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

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

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

 

图4-4

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

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

 

图4-5

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

-count 统计文件(夹)数量

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

 

图4-6

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

-mv 移动

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

 

图4-7

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

-cp 复制

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

 

图4-8

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

-rm 删除文件/空白文件夹

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

 

图4-9

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

-rmr 递归删除

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

 

图4-10

-put 上传文件

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

 

图4-11

-copyFromLocal 从本地复制

操作与-put一致,不再举例。

-moveFromLocal 从本地移动

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

 

图4-12

-getmerge 合并到本地

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

图4-13

-cat 查看文件内容

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

 

图4-14

-text 查看文件内容

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

-mkdir 创建空白文件夹

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

 

图4-15

-setrep 设置副本数量

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

 

图4-16

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

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

图4-17

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

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

 

图4-18

请读者自己比较以上两图中使用-q前后执行结果的变化情况。

-touchz 创建空白文件

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

 

图4-19

-stat 显示文件的统计信息

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

 

图4-20

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

-tail 查看文件尾部内容

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

 

图4-21

-chmod 修改文件权限

该命令选项的使用类似于linux的shell中的chmod用法,作用是修改文件的权限,如图4-22所示。

 

图4-22

在图4-22中,修改了文件/emptyfile的权限。

如果加上选项-R,可以对文件夹中的所有文件修改权限,如图4-23所示。

图4-23

-chown 修改属主

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

 

图4-24

上图中把文件/emptyfile的属主由root修改为itcast。

也可以同时修改属组,如图4-25所示。

 

图4-25

在图4-25中,把文件/emptyfile的属主和属组都修改为itcast,如果只修改属组,可以使用“:itcast”。

如果带有选项-R,意味着可以递归修改文件夹中的所有文件的属主、属组信息。

-chgrp 修改属组

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

 

图4-26

-help 帮助

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

 

图4-27

在图4-27中,查询的rm的用法。

该命令选项显示的内容并非完全准确,比如查询count的结果就不准确,而是把所有命令选项的用法都显示出来,如图4-28所示。希望新的版本以后改进。

 

图4-28

读者短时间无法掌握全部命令用法,请重点掌握ls(r)、rm(r)、mkdir、put、get的使用。

 -----------------------------------------------------------------------------

来源链接:https://wenku.baidu.com/view/3406704cf01dc281e53af0f8.html


推荐阅读
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文由瀚高PG实验室撰写,详细介绍了如何在PostgreSQL中创建、管理和删除模式。文章涵盖了创建模式的基本命令、public模式的特性、权限设置以及通过角色对象简化操作的方法。 ... [详细]
author-avatar
Quan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有