HDFS之shell操作

HDFS 的 shell 操作

  1. 基本语法

    hadoop fs 具体命令 OR hdfs dfs 具体命令

    两个是完全相同的。

  2. 命令大全

    [atguigu@hadoop102 hadoop-3.1.3]$ bin/hadoop fs

    [-appendToFile ... ]

    ​ [-cat [-ignoreCrc] ...]

    ​ [-chgrp [-R] GROUP PATH...]

    ​ [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]

    ​ [-chown [-R][owner][:[GROUP]] PATH...]

    ​ [-copyFromLocal [-f][-p] ... ]

    ​ [-copyToLocal [-p][-ignorecrc] [-crc] ... ]

    ​ [-count [-q] ...]

    ​ [-cp [-f][-p] ... ]

    ​ [-df [-h][ ...]]

    ​ [-du [-s][-h] ...]

    ​ [-get [-p][-ignorecrc] [-crc] ... ]

    ​ [-getmerge [-nl] ]

    ​ [-help [cmd ...]]

    ​ [-ls [-d][-h] [-R][ ...]]

    ​ [-mkdir [-p] ...]

    ​ [-moveFromLocal ... ]

    ​ [-moveToLocal ]

    ​ [-mv ... ]

    ​ [-put [-f][-p] ... ]

    ​ [-rm [-f][-r|-r] [-skipTrash] ...]

    ​ [-rmdir [--ignore-fail-on-non-empty]

    ...]

    ​ <acl_spec> ]]

    ​ [-setrep [-R][-w] ...]

    ​ [-stat [format] ...]

    ​ [-tail [-f] ]

    ​ [-test -[defsz] ]

    ​ [-text [-ignoreCrc] ...]

  3. 常用命令实操

    1. 准备工作

      • 启动 Hadoop 集群

        ##此处只测试 HDFS 文件系统 可以不开启 yarn

        start-dfs.sh

        start-yarn.sh

      • -help:输出这个命令参数

        hadoop fs -help rm

      • 创建/sanguo文件夹

        hadoop fs -mkdir /sanguo

    2. 上传

      • -moveFromLocal: 从本地剪切黏贴到 HDFS

        vim shuguo.txt

        输入:

        shuguo

        hadoop fs -moveFormLocal ./shuoguo.txt /sanguo

      • -copyFromLocal:从本地文件系统中拷贝文件到 HDFS 路径中

        vim weiguo.txt

        输入:

        weiguo

        hadoop fs -copyFormLocal weiguo.txt /sanguo

      • -put:等同于 copyFormLocal,生产环境更习惯用 put

        vim wuguo.txt

        输入:

        wuguo

        hadoop fs -put ./wuguo.txt /sanguo

      • appendToFile:追加一个文件到已经存在的文件末尾

        vim liubei.txt

        输入:

        liubei

        hadoop fs -appendToFile liubei.txt /sanguo/shuguo.txt

    3. 下载

      • -copyToLoal:从 HDFS 拷贝到本地

        hadoop fs -copyToLocal /sanguo/shuguo.txt ./

      • -get:等同于 copyToLocal,生产环境更习惯用 get

        hadoop fs -get /sanguo/shuguo.txt ./shuguo2.txt

        注意:下载过程中可以重命名

    4. HDFS 直接操作

      • -ls:显示目录信息

        hadoop fs -ls /sanguo

      • -cat:显示文件内容

        hadoop fs -cat /sanguo/shuguo.txt

      • -chgrp、-chmod、-chown:Linux 文件系统中的用法一样,修改文件所属权限

        hadoop fs -chmod 666 /sanguo/shuguo.txt

        hadoop fs -chown atguigu:atguigu /sanguo/shuguo.txt

      • -mkdir: 创建路径

        hadoop fs -mkdir /jinguo

      • -cp:从 HDFS 的一个路径拷贝到 HDFS 的另一个路径

        hadoop fs -cp /sanguo/shuguo.txt /jinguo

      • -mv: 在 HDFS 目录中移动文件

        hadoop fs -mv /sanguo/wuguo.txt /jinguo

      • -tail: 显示一个文件的末尾 1kb 的数据

        hadoop fs -tail /jinguo/shuguo.txt

      • -rm:删除文件或文件夹

        hadoop fs -rm /sanguo/shuguo.txt

      • -rm -r:递归删除目录及目录里面的内容

        hadoop fs -rm /sanguo/shuguo.txt

      • -du :统计文件夹的大小信息

        hadoop fs -du -s -h /jinguo

        27 81 /jinguo

        hadoop fs -du -h /jinguo

        14 42 /jinguo/shuguo.txt

        7 21 /jinguo/weiguo.txt

        6 18 /jinguo/wuguo.txt

        说明:27 表示文件大小;81 表示 27*3 个副本;/jinguo 表示查看的目录

      • -setrep:设置 HDFS 中文件的副本数量

        hadoop fs -setrep 10 /jinguo/shuguo.txt

        说明:

        这里设置的副本数只是记录在 NameNode 的元数据中,是否真的会有这么多副本,还得看 DataNode 的数量。因为目前只有 3 台设备,最多 也就 3 个副本,只有节点数的增加到 10 台时,副本数才能达到 10。

posted @ 2021-10-17 15:07  逆十字  阅读(51)  评论(0)    收藏  举报