设为首页 收藏本站
查看: 618|回复: 0

[经验分享] Hadoop fs命令详解

[复制链接]

尚未签到

发表于 2015-7-13 10:15:05 | 显示全部楼层 |阅读模式
  本文非原创,转载自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  上传文件
-copyFromLocal-copyFromLocal  从本地复制
-moveFromLocal-moveFromLocal  从本地移动
-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所示。

  图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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-86184-1-1.html 上篇帖子: 细水长流Hadoop源码分析(4)RPC服务器运行之Listener线程 下篇帖子: Hadoop Streaming 编程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表