HDFS常用命令总结

一、hdfs dfs与hadoop fs

命令的形式:hdfs dfs -linux命令

这与linux中命令操作是一样的。

hadoop fs等同于hdfs dfs

二、Hadoop命令

hadoop classpath: 打印当前hadoop环境的配置路径

(base) [root@hb-dev-hadoop-01 ~]# hadoop classpath
/opt/module/hadoop-3.2.0/etc/hadoop:/opt/module/hadoop-3.2.0/share/hadoop/common/lib/*:/opt/module/hadoop-3.2.0/share/hadoop/common/*:/opt/module/hadoop-3.2.0/share/hadoop/hdfs:/opt/module/hadoop-3.2.0/share/hadoop/hdfs/lib/*:/opt/module/hadoop-3.2.0/share/hadoop/hdfs/*:/opt/module/hadoop-3.2.0/share/hadoop/mapreduce/lib/*:/opt/module/hadoop-3.2.0/share/hadoop/mapreduce/*:/opt/module/hadoop-3.2.0/share/hadoop/yarn:/opt/module/hadoop-3.2.0/share/hadoop/yarn/lib/*:/opt/module/hadoop-3.2.0/share/hadoop/yarn/*

三、HDFS常用命令

(1)查看文件夹下的文件目录:hdfs dfs -ls

hdfs dfs -ls       # 列出工作主目录下的信息
hdfs dfs -ls /     # 列出hdfs文件系统中
hdfs dfs -ls /data/output  # 列示/data/output/文件夹下的目录

(2)创建新文件夹:hdfs dfs -mkdir

# path可以是绝对路径,也可以是相对路径。
hdfs dfs -mkdir [-p] <path>
hdfs dfs -mkdir tmp   # 在hdfs文件系统中/user/hadoop001目录下创建tmp目录
hdfs dfs -mkdir ./tmp # 同上 hdfs dfs -ls 查看
hdfs dfs -mkdir /tmp  # 在hdfs文件系统的根目录下创建一个tmp目录
hdfs dfs -mkdir -p /tmp/data  # 创建嵌套目录

(3)删除目录:hdfs dfs -rm -r -f

hdfs dfs -rm [-r] [-f] <uri>  # 删除目录或文件,-r -f不能组合成-rf
hdfs dfs -rm -r -f /test      # 删除根目录下的test目录
hdfs dfs -rmdir /test         # 删除目录:只能删除空目录
hdfs dfs -rm -r /data/output  # 删除data/output的目录

若开启回收站功能,目录并不会真正的被删除。

开启回收站配置:

# 打开配置文件 core-site.xml
vi /usr/local/hadoop-3.2.0/etc/hadoop/core-site.xml
# 添加如下属性配置,1440代表回收站保存一天数据
<property>
        <name>fs.trash.interval</name>
        <value>1440</value>
</property>

回收站位置:

hdfs dfs -ls  #删除目录也会在终端打印回收站路径

 当删除文件过大,超过了回收站的大小删除失败,添加如下参数:

# 删除文件 LICENSE.txt 
# -skipTrash :代表永久删除,无法找回
hdfs dfs -rm -skipTrash hdfs://bigdata01:9000/README.txt

(4)查看目录:hdfs dfs -cat

hdfs dfs -cat <URI>
# 查看/user/hadoop001/tmp/exception.log 文件内容
hdfs dfs -cat ./tmp/exception.log

(5)寻找文件:hdfs dfs -find

# 从根目录下精确搜索exception.log文件
hdfs dfs -find / -name exception.log
# 从/user/hadoop001目录下搜索名称中包含ex字符串的文件
hdfs dfs -find /user/hadoop001 -name '*ex*'

(6)本地文件拷贝到hdfs:hdfs dfs -put

hdfs dfs -put [-f] [-p] [-l] [-d] [-t <thread count>] [ - | <localsrc1> .. ]. <dst>
# -f 如果已存在就覆盖
# -p 递归拷贝

hdfs dfs -put head.png tmp/head.png # 拷贝文件
hdfs dfs -put /tmp/pycharm_project_962/data/input/sf-crime /data/input/  # 将服务器sf-crime的文件夹拷贝到/data/input/文件夹

(7)hdfs文件下载到本地

hdfs dfs -get [-ignorecrc] [-crc] [-p] [-f] <src> <localdst>
# -p 保留访问权限 修改时间等信息
# -f 如果目标文件已存在,直接覆盖。
hdfs dfs -get ./tmp ./hdfs-temp-dic # 将hdfs中的tmp目录下载到本地并重命名

(8)复制文件:hdfs dfs -cp

hdfs dfs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
# -f 如果存在,直接覆盖。

hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2
hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir

hdfs dfs -cp tmp ./temp # 将tmp拷贝并重命名为temp

(9)统计目录下文件夹数量、文件数量、目录下文件总字节数:

hadoop fs -count [-q] [-h] [-v] [-x] [-t [<storage type>]] [-u] [-e] [-s] <paths>\
hdfs dfs -count  /user/hadoop001  # 对/user/hadoop001目录进行统计

结果每列含义:目录数 文件数 总大小(字节) 目录名称

(10)hdfs内部移动文件:hdfs dfs -mv

hdfs dfs -mv URI [URI ...] <dest>
# mv命令只能在hdfs文件系统中使用,不能跨系统。
hdfs dfs -mv tmp /tmp_home

 (11)过滤hdfs中某个Block块大小超过10G

hdfs fsck / -blocks -locations | awk 'BEGIN{FS=": | +|"} $2=="Block" && $4>10*1024*1024*1024 {print $0}'

 (12)过滤hdfs中某个目录的大小超过10G

hdfs dfs -du -s /path/directory | awk -v limit=10 '{ if ($1 > limit * 1024 * 1024 * 1024) print $0 }'

若需要过滤嵌套子目录的大小,可以使用以下方式:

hdfs dfs -du -s /path/directory/* | awk -v limit=10 '{ if ($1 > limit * 1024 * 1024 * 1024) print $0 }'

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CN-FuWei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值