zoukankan      html  css  js  c++  java
  • 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命令操作

    本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15254727.html

  • 相关阅读:
    Xcode 8.2 想使用插件 怎么办? 教你科学的使用插件
    JSAPI_Ticket签名
    Java中HashMap,LinkedHashMap,TreeMap的区别[转]
    微信支付开发,再次签名,APP调用
    微信支付开发,统一下单
    android studio安装插件
    java实现mysql数据库的备份及还原
    java项目中读取src目录下的文件
    eclipse增加浏览器chrome
    cd 命令
  • 原文地址:https://www.cnblogs.com/xdr630/p/15254727.html
Copyright © 2011-2022 走看看