第 7 章 HDFSshell操作

操作HDFS有 3 种方式,

  • hadoop fs <args>

  • hdfs dfs <args>

  • hadoop dfs <args>

这 3 种方式中, 前 2 种完全等价: 即可以操作HDFS, 也可以操作一些其他文件系统:Local FS, HFTP FS, S3 FS, and others

第 3 种方式, 只能操作HDFS, 目前已经过时, 不建议再使用.

推荐使用:hadoop fs <args>

hdfs的很多操作命名非常类似于Linuxshell命令, 所以学起来并没有难度.


7.2 HDFS命令综述

使用如下格式来操作HDFSShell.

hadoop fs <args>
  1. 所有的shell命令都会使用到path URIs作为参数.

  2. URI的格式: scheme://authority:port/path

  3. 如果操作HDFS,scheme就是hdfs

  4. 如果操作本地文件系统, scheme就是file

  5. schemeauthority都可以省略, 如果省略则默认使用hdfs://NameNodeHost:port(NameNodeHost:port是你在core-site.xml中设置的值)

  6. 我们使用的的是都是省略掉schemeauthority

  7. 如果操作本地系统, 用本地文件系统提供的shell, 而不会使用HDFS提供的shell

例如:

hadoop fs -ls hdfs://hadoop201:9000/

# 完全等价于:
hadoop fs -ls /


# 操作本地文件系统. file:// 协议.  最后一个 / 表示根目录
hadoop fs -ls file:///

# 完全等价于:
ls


7.3 HDFS常用的shell命令

  1. ls

    显示目录信息.

    hadoop fs -ls /
    

  2. put

    把本地文件上传到HDFS.

    语法:hadoop fs -put localFile hdfsFile

    options: -f: 如果已经存在, 则强制覆盖 -p: 保留文件的访问和修改时间, 拥有者和权限.

    hadoop fs -put words.txt /a
    

    注意:

    • 也可以同时上传多个: hadoop fs -put localFile1 loalFile2 hdfsFile

  3. get

    HDFS下载文件到本地

    语法:hadoop fs -get <src> <localDir>

    options: -p: -f: -ignorecrc: 下载文件的时候忽略CRC校验 -crc: write CRC checksums for the files downloaded.


  4. cat

    查看文件内容


  5. appendToFile

    把本地文件系统的文件追加到HDFS中的文件的尾部. 也可以把标准输入流中的数据追加到HDFS中的文件的尾部.

    语法:hadoop fs -appendToFile <local> ... <dst>

    例如:

    hadoop fs -appendToFile words3.txt /a/words.txt
    


  6. mkdir 创建目录. 使用方式和Linux下的mkdir一致.


  7. tail

    显示一个文件的末尾


  8. chgrp 、chmod、chown

    linux文件系统中的用法一样,修改文件所属权限


  9. copyFromLocal

    从本地文件系统中拷贝文件到hdfs路径去


  10. copyToLocal

    HDFS拷贝到本地.

    get类似, 比get更加严格, 因为目的地严格限制在了本地文件系统


  11. copyFromLocal

    从本地copyHDFS

    put类似, 比put更严格, 因为源严格限制在了本地文件系统.


  12. cp: 从hdfs的一个路径拷贝到hdfs的另一个路径


  13. mv:

    hdfs目录中移动文件


  14. getmerge

    合并下载多个文件


  15. rm

    删除文件或文件夹


  16. rmdir

    删除空目录


  17. setrep

    设置hdfs中文件的副本数量


  18. touchz

    创建一个长度为0的文件. 类似于Linuxtouch命令


  19. df

    显示可用空间


  20. du

    显示目录或文件的占用空间

Copyright © 尚硅谷大数据 2013-2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2019-02-14 02:59:46

results matching ""

    No results matching ""