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

[经验分享] Hadoop开发第6期---HDFS的shell操作

[复制链接]

尚未签到

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

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

图 3.1

DSC0002.png

图 3.2

DSC0003.png

图 3.3

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

DSC0004.png

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

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

DSC0005.png

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

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

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

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

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

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

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

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

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

12. moveFromLocal 从本地移动到hdfs
该命令表示把文件从linux 上移动到hdfs 中,如下图所示

DSC00013.png

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

DSC00014.png

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

DSC00015.png

15. text 查看文件内容
该命令选项可以认为作用和用法与-cat 相同,此处略。

16. mkdir 创建空白文件夹
该命令选项表示创建文件夹,后面跟的路径是在hdfs 将要创建的文件夹,如下图所示

DSC00016.png

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

DSC00017.png

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

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

DSC00018.png

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

18.  touchz 创建空白文件
该命令选项是在hdfs 中创建空白文件,如下图 所示

DSC00020.png
  
19. stat 显示文件的统计信息
该命令选项显示文件的一些统计信息,如下图所示

DSC00021.png

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

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

DSC00022.png

21.  chmod 修改文件权限
(1) 该命令选项的使用类似于linux 的shell 中的chmod 用法,作用是修改文件的权限,如下图所示

DSC00023.png 3

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

DSC00024.png

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

DSC00025.png

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


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

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


24. help 帮助
该命令选项会显示帮助信息,后面跟上需要查询的命令选项即可,如下图所示


在上图中,查询的rm 的用法

运维网声明 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-85472-1-1.html 上篇帖子: [Hadoop]在Windows上安装Hadoop 下篇帖子: “流”式思想解决hadoop job调度的一种思路
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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