HDFS Shell 命令实操

1. 微博案例–HDFS Shell实操

1.1 案例:微博用户数据HDFS操作

  • 需求:微博作为社交平台,拥有大量的用户评论数据。为了更好的分析微博用户的行为和习惯,进行精准的营销和推荐。可以将微博的用户评论数据上传到HDFS,供后续其他大规模文本、情感分析程序来处理。因为HDFS作为分布式文件存储系统,是整个大数据平台的最底层的核心。
  • 目录规划
    在这里插入图片描述

1.2 创建目录

  • 命令:hadoop fs -mkdir [-p] <path> ...
    path 为待创建的目录
    -p选项的行为与Unix mkdir -p非常相似,它会沿着路径创建父目录。
    在这里插入图片描述

  • 可以选择一个一个创建,也可以一起创建

hadoop fs -mkdir /common
hadoop fs -mkdir /workspace /warehouse /source

在这里插入图片描述
在这里插入图片描述

1.3 查看指定目录下内容

  • 命令:hadoop fs -ls [-h] [-R] [<path> ...]
    path 指定目录路径
    -h 人性化显示文件size
    -R 递归查看指定目录及其子目录
    在这里插入图片描述
  • 两个参数也可以同时使用
hadoop fs -ls -h -R /
  • 使用 -h 参数会人性化一点
    在这里插入图片描述

1.4 上传文件到指定目录下(1)

  • 命令:hadoop fs -put [-f] [-p] <localsrc> ... <dst>
    -f 覆盖目标文件(已存在下)
    -p 保留访问和修改时间,所有权和权限。
    localsrc 本地文件系统(客户端所在机器)
    dst 目标文件系统(HDFS)

  • 上传 test1.csv 测试文件到 root 目录下
    在这里插入图片描述

  • 创建好 HDFS 下的文件目录

hadoop fs -mkdir -p /source/weibo/star/comment_log/20210404_hadoop1/

在这里插入图片描述

  • 把刚刚root下的 test1.cvs 文件上传到 HDFS 对应的路径下,下面两种方式都是可行的
hadoop fs -put test1.csv /source/weibo/star/comment_log/20210404_hadoop1/

hadoop fs -put file:///root/test1.csv

在这里插入图片描述

1.5 上传文件到指定目录下(2)

  • 命令:hadoop fs -moveFromLocal <localsrc> ... <dst>
  • 和-put功能意义,只不过上传结束,源数据会被删除
hadoop fs -moveFromLocal test1.csv /tmp/

在这里插入图片描述

1.6 查看HDFS文件内容(1)

  • 命令:hadoop fs -cat <src> ...
    读取指定文件全部内容,显示在标准输出控制台。
    注意:对于大文件内容读取,慎重。 适合查看小文件
  • 如:
hadoop fs -cat /source/weibo/star/comment_log/20210404_hadoop1/test1.csv

1.7 查看HDFS文件内容(2)

  • 命令:hadoop fs -head <file>
  • 查看文件前1KB的内容。
  • 如:
hadoop fs -head /source/weibo/star/comment_log/20210404_hadoop1/test1.csv

1.8 查看HDFS文件内容(3)

  • 命令:hadoop fs -tail [-f] <file>
  • 查看文件最后1KB的内容
    -f选择可以动态显示文件中追加的内容。

1.9 下载HDFS文件(1)

  • 命令:hadoop fs -get [-f] [-p] <src> ... <localdst>
  • src 表示的的是 HDFS 路径
  • 下载文件到本地文件系统指定目录,localdst必须是目录,表示当前客户端的机器路径
    -f 覆盖目标文件(已存在下)
    -p 保留访问和修改时间,所有权和权限。
  • 如:把 HDFS 下的 /tmp/test1.csv 下载到第三台 hadoop3root
hadoop fs -get /tmp/test1.csv /root

hadoop fs -get /tmp/test1.csv ./

./ 表示的就是当前路径
在这里插入图片描述

1.10 合并下载HDFS文件(2)

  • 命令:hadoop fs -getmerge [-nl] [-skip-empty-file] <src> <localdst>
  • 下载多个文件合并到本地文件系统的一个文件中。并且跳过空文件
    -nl选项表示在每个文件末尾添加换行符
  • 案例:分别在本地文件路径下创建 三个txt文件,分别写入1,2,3数字
    在这里插入图片描述
  • 创建HDFS下 /tmp/small 文件夹,把三个 txt 文件上传到此路径下
    在这里插入图片描述
    在这里插入图片描述
  • /tmp/small/下的 三个文件下载到本地合并,重命名为 123.txt 文件
    在这里插入图片描述

1.11 拷贝HDFS文件

  • 命令:hadoop fs -cp [-f] <src> ... <dst>
    -f 覆盖目标文件(已存在下)
  • 案例:把 /tmp/test1.csv 文件拷贝到 /tmp/small 路径下
    在这里插入图片描述
hadoop fs -cp /tmp/test1.csv /tmp/small/

在这里插入图片描述

1.12 追加数据到HDFS文件中

  • 命令:hadoop fs -appendToFile <localsrc> ... <dst>
  • 将所有给定本地文件的内容追加到给定dst文件。
    dst如果文件不存在,将创建该文件。
    如果<localSrc>为-,则输入为从标准输入中读取。
  • 案例:在本地创建 xdr630.txt 文件,写入:this is xdr630 file. ,追加到 HDFS 上的 /tmp/small/1.txt
hadoop fs -appendToFile xdr630.txt /tmp/small/1.txt

在这里插入图片描述

1.13 查看HDFS磁盘空间

  • 命令:hadoop fs -df [-h] [<path> ...]
  • 显示文件系统的容量,可用空间和已用空间
hadoop fs -df -h /

在这里插入图片描述

1.14 查看HDFS文件使用的空间量

  • 命令:hadoop fs -du [-s] [-h] <path> ...
    -s:表示显示指定路径文件长度的汇总摘要,而不是单个文件的摘要。
    -h:选项将以“人类可读”的方式格式化文件大小
hadoop fs -du -s -h /source/weibo

在这里插入图片描述

1.15 HDFS数据移动操作或重命名文件的名称

  • 命令:hadoop fs -mv <src> ... <dst>
  • 移动文件到指定文件夹下
  • 可以使用该命令移动数据,重命名文件的名称
  • 案例:把/tmp/small/test1.csv 文件移动到 HDFS 的根目录下
hadoop fs -mv /tmp/small/test1.csv /

在这里插入图片描述

1.16 修改HDFS文件副本个数

  • 命令:hadoop fs -setrep [-R] [-w] <rep> <path> ...
  • 修改指定文件的副本个数。
    -R表示递归 修改文件夹下及其所有
    -w 客户端是否等待副本修改完毕。
    在这里插入图片描述

1.17 删除HDFS文件

  • 命令: hadoop fs -rm [-f] [-r |-R] [-skipTrash] [-safely] URI [URI ...]
  • 删除文件
    -R选项以递归方式删除目录及其下的任何内容。
    -r选项等效于-R。
    -skipTrash选项将绕过垃圾桶(如果启用),并立即删除指定的文件。当需要从超配额目录中删除文件时,这很有用。
  • 案例:删除 HDFS 根目录下的 test1.csv
hadoop fs -rm /test1.csv

在这里插入图片描述

  • 成功返回0,错误返回-1。
  • 递归删除:

1.18 批量删除文件

  • 其实就是一个命令连续删除多个文件,如:
  • 案例:删除 HDFS 上的 /tmp/small 下的三个 txt 文件。
    在这里插入图片描述
hadoop fs -rm /tmp/small/1.txt /tmp/small/2.txt /tmp/small/3.txt

在这里插入图片描述
在这里插入图片描述

  • 这里要注意的是:多个文件中的间隔一定要写完整的文件路径,不然就删除不了

1.19 递归删除文件夹

  • 命令:hadoop fs -rmr URI [URI …]
    或:hadoop fs -rm -r URI [URI …]
  • 递归版本的删除。
  • 官方推荐使用 hadoop fs -rm -r
  • 如:
hadoop fs -rmr /user/hadoop/dir
hadoop fs -rmr hdfs://host:port/user/hadoop/dir

2. HDFS其他Shell命令操作

posted @ 2021-04-05 16:04  兮动人  阅读(96)  评论(0编辑  收藏  举报