本文非原创,转载自http://www.superwu.cn/2013/07/31/312

另外参考:http://www.blogjava.net/changedi/archive/2013/08/12/402696.html

Hadoop框架之HDFS的shell操作

既然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上的文件> <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 [命令选项] 帮助

注意:以上表格中路径包括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所示。

图1-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

Hadoop fs命令详解的更多相关文章

  1. Hadoop fs 命令详解

    1. 环境:hadoop-2.6.0 2. 参数说明: hadoop fs [-appendToFile <localsrc> ... <dst>] [-cat [-ignor ...

  2. hadoop Shell命令详解

    调用文件系统(FS)Shell命令应使用bin/hadoop fs <args>的形式.所有的的FS shell命令使用URI路径作为参数.URI路径详解点击这里. 1.cat说明:将路径 ...

  3. Hadoop学习之路(十六)Hadoop命令hadoop fs -ls详解

    http://blog.csdn.net/strongyoung88/article/details/68952248

  4. hadoop之hdfs命令详解

    本篇主要对hadoop命令和hdfs命令进行阐述,yarn命令会在之后的文章中体现 hadoop fs命令可以用于其他文件系统,不止是hdfs文件系统内,也就是说该命令的使用范围更广可以用于HDFS. ...

  5. hadoop之yarn详解(命令篇)

    本篇主要对yarn命令进行阐述 一.yarn命令概述 [root@lgh ~]# yarn -help Usage: yarn [--config confdir] COMMAND where COM ...

  6. 【转载】Hadoop历史服务器详解

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:过往记忆(http://www.iteblog.com/)     原文地址: ...

  7. hadoop hdfs uri详解

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  8. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  9. DOS命令详解

    DOS命令详解 命令 \? 可以进入命令帮助 1.md命令创建目录. MKDIR [drive:]pathMD [drive:]path 如果命令扩展被启用,MKDIR 会如下改变: 如果需要,MKD ...

随机推荐

  1. NDK环境配置

    1.下载安装插件:com.android.ide.eclipse.ndk_23.0.2.1259578.jar      copy到E:\eclipse\adt-bundle-windows-x86- ...

  2. enum 在c中的使用

    假设一个变量你须要几种可能存在的值,那么就能够被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也能够说是可能的值一一例举出来.  举个样例来说明一吧,为了让大家更明确一点,比方一个 ...

  3. mysql 重要维护工具 图解

        下载地址: http://maatkit.org/get/mk-query-digest更多信息: http://maatkit.org/ | http://code.google.com/p ...

  4. Qt之遍历文件夹

    关于Qt操作文件夹.文件的知识用途较多,比如遍历下一层乃至所有子孙文件.文件夹,获取它们的一些信息(大小.类型.最后更改时间等).当然,也可以进行级联删除.     首先看简单的:   一.Qt遍历文 ...

  5. IE7下position:relative的问题

    如果在IE7中使用position:relative属性,需要在该元素的容器上,同时给予position:relative属性.

  6. 琐碎-到底要不要SSH免密码设置

    搭建了很多次hadoop2.2.0了,尝试过很多不同的启动方法.配置参数.位置,其中涉及到到底要不要配置SSH免密码登录的问题 先是搞清楚为什么需要SSH免密码登录 SSH免密码登录操作步骤: ... ...

  7. JavaScript与FileSystemObject

    什么是FileSystemObject(简称FSO)  FSO 即文件系统对象,是一种列表 Windows 磁盘目录和文件,对目录和文件进行删除.新建.复制.剪切.移动等操作的技术.使用 FSO 网站 ...

  8. 杂乱无章之javascript(一)

    1.in 要求第一个(左边的)操作数必须是字符串类型或是可以转化成字符串类型的其他类型,而第二(右边的)操作数必须是数组或对象.只有第一个操作数的值是第二个操作数的属性名,才会返回true,否则返回f ...

  9. 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)【转】

    介绍 为其他对象提供一个代理以控制对这个对象的访问. 示例 有一个Message实体类,某对象对它的操作有Insert()和Get()方法,用一个代理来控制对这个对象的访问. MessageModel ...

  10. oracle数据字典和动态性能视图

    数据字典和动态性能视图数据字典是oracle数据库中重要的组成部分,提高了数据库的一些系统信息.(静态信息)动态性能视图记载了例程启动后的信息.(动态信息) 数据字典记录了数据的系统信息,是只读表和动 ...