zoukankan      html  css  js  c++  java
  • HDFS的访问方式之HDFS shell的常用命令

    场景

    CentOS7上搭建Hadoop集群(入门级):

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119335883

    在上面搭建起来Hadoop集群的基础上,通过HDFS shell的方式访问HDFS的常用命令。

        HDFS的访问方式有两种:一种是HDFS shell,一种是Java API方式。HDFS shell命令应
    使用hadoop fs或hdfs dfs(其中官网建议使用hdfs dfs方式访问)。所有的HDFS shell命令使
    用URI路径作为参数,URI格式是scheme://path,对于HDFS文件系统,scheme是hdfs;对
    于本地文件系统,scheme是file。其中scheme是可选的,如果未加指定,默认是HDFS文件
    系统。一个HDFS文件或目录如parent/path可以表示成hdfs://parent/path,或者是更简单的
    /parent/path

    注:

    博客:
    https://blog.csdn.net/badao_liumang_qizhi
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    实现

    启动HDFS后,显示常用命令的用法

    hdfs dfs

    [root@master sbin]# hdfs dfs
    Usage: hadoop fs [generic options]
     [-appendToFile <localsrc> ... <dst>]
     [-cat [-ignoreCrc] <src> ...]
     [-checksum <src> ...]
     [-chgrp [-R] GROUP PATH...]
     [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
     [-chown [-R] [OWNER][:[GROUP]] PATH...]
     [-copyFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
     [-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
     [-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] <path> ...]
     [-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>]
     [-createSnapshot <snapshotDir> [<snapshotName>]]
     [-deleteSnapshot <snapshotDir> <snapshotName>]
     [-df [-h] [<path> ...]]
     [-du [-s] [-h] [-x] <path> ...]
     [-expunge]
     [-find <path> ... <expression> ...]
     [-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
     [-getfacl [-R] <path>]
     [-getfattr [-R] {-n name | -d} [-e en] <path>]
     [-getmerge [-nl] [-skip-empty-file] <src> <localdst>]
     [-help [cmd ...]]
     [-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...]]
     [-mkdir [-p] <path> ...]
     [-moveFromLocal <localsrc> ... <dst>]
     [-moveToLocal <src> <localdst>]
     [-mv <src> ... <dst>]
     [-put [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
     [-renameSnapshot <snapshotDir> <oldName> <newName>]
     [-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...]
     [-rmdir [--ignore-fail-on-non-empty] <dir> ...]
     [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
     [-setfattr {-n name [-v value] | -x name} <path>]
     [-setrep [-R] [-w] <rep> <path> ...]
     [-stat [format] <path> ...]
     [-tail [-f] <file>]
     [-test -[defsz] <path>]
     [-text [-ignoreCrc] <src> ...]
     [-touchz <path> ...]
     [-truncate [-w] <length> <path> ...]
     [-usage [cmd ...]]
    
    Generic options supported are
    -conf <configuration file>     specify an application configuration file
    -D <property=value>            use value for given property
    -fs <file:///|hdfs://namenode:port> specify default filesystem URL to use, overrides 'fs.defaultFS' property from configurations.
    -jt <local|resourcemanager:port>    specify a ResourceManager
    -files <comma separated list of files>    specify comma separated files to be copied to the map reduce cluster
    -libjars <comma separated list of jars>    specify comma separated jar files to include in the classpath.
    -archives <comma separated list of archives>    specify comma separated archives to be unarchived on the compute machines.
    
    The general command line syntax is
    command [genericOptions] [commandOptions]

    1、usage

    例如查看ls的用法

    hdfs dfs -usage ls

    2、help

    查看命令的详细帮助,例如查看ls命令的帮助

    hdfs dfs -help ls

    3、ls

    查看文件或目录

    hdfs dfs -ls hdfs://master:9000/

    这里的hdfs://master:9000/是fs.defaultFS配置的值,表示HDFS系统中的根目录

    如果使用的是HDFS文件系统,可以简写为/

    加上选项-R 连同子目录的文件一起列出

    4、put

    从本地文件系统上传文件到HDFS

    hdfs dfs -put /usr/local/1.txt /

    左边是本地文件系统的路径  右边是HDFS系统的路径,这里是根目录

    5、cat

    显示文件内容

    hdfs dfs -cat /1/txt

    6、text

    给指定的文件以文本的格式输出,允许的格式有zip、TextRecordInpurStream、Avro。

    当文件为文本文件时,等同于cat

    hdfs dfs -text /1.txt

    7、tail

    显示文件最后1KB的内容。

    hdfs dfs -tail /1.txt

    8、touchz

    创建一个空文件

    hdfs dfs -touchz /badao.txt

    9、get

    从HDFS上下载文件到本地

    hdfs dfs -get /badao.txt

    10、copyFromLocal

    从本地系统上传文件到HDFS,与put命令相同

    11、copyToLocal

    从HDFS下载文件到本地文件系统,与get命令相同

    12、moveFromLocal

    与put命令相同,只是上传成功后本地文件会被删除

    13、mv

    同Linux的mv命令,移动或重命名文件

    hdfs dfs -mv /1.txt /user

    14、cp

    复制文件

    hdfs dfs -cp /badao.txt /badaocopy.txt

    15、mkdir

    创建文件夹

    hdfs dfs -mkdir /newdir

    16、rm

    删除文件

    hdfs dfs -rm /badaocopy.txt

    选线 -r 可以递归的删除,可以删除非空目录。

    17、rmdir

    删除空目录

    hdfs dfs -rmdir /newdir

    18、expunge

    清空回收站

    hdfs dfs -expunge

    19、chmod

    改变权限

    hdfs dfs -chmod 777 /badao.txt

    20、count

    显示指定文件或目录

    hdfs dfs -count -q /

    21、du

    显示文件大小

    如果指定目录,会显示该目录中每个文件的大小

    hdfs dfs -du /

    22、df

    检查文件系统的磁盘空间占用情况

    hdfs dfs -df /

    23、stat

    显示文件统计信息

    格式:
    %b为文件所占的块数,%g为文件所属的用户组,%n为文件名,%o为数据块大小
    %r为备份数,%u为文件所属用户,%y为文件修改时间。

    hdfs dfs -stat %b,%g,%n,%o,%r,%u,%y /user

    24、createSnapshot

    创建快照。

    Snapshot(快照)是一个全部文件系统或者某个目录在某一时刻的镜像。

    创建动作仅仅是在目录对应的innode上加个快照的标签,不会涉及数据块的拷贝操作,也不会

    对读写性能有影响,但是会占用NameNode一定的额外内存来存放快照中被修改的文件和目录

    的元信息。

    hdfs dfs -createSnapshot /user snap1

    会提示:

    Directory is not a snapshottable directory : /user

    然后

    hdfs dfsadmin -allowSnapshot /user

    再执行即可

    25、renameSnapshot

    重命名快照

    hdfs dfs -renameSnapshot 路径  旧名称  新名称

    比如:

    hdfs dfs -renameSnapshot /user snap1 snap2

    26、deleteSnapshot

    删除快照

    hdfs dfs -deleteSnapshot /user snap2

    博客园: https://www.cnblogs.com/badaoliumangqizhi/ 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。
  • 相关阅读:
    Android客户端消息推送原理简介
    优秀程序员的十个习惯
    能让你成为更优秀程序员的10个C语言资源
    成大事必备9种能力、9种手段、9种心态
    33个优秀的HTML5应用演示 (转)
    Maven学习:Eclipse使用maven构建web项目(转)
    使用fiddler模拟http get
    TLS握手
    风暴英雄 http 302重定向 正在等待游戏模式下载完成
    page template in kentico
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/15095024.html
Copyright © 2011-2022 走看看