HDFS的Shell操作命令+示例

HDFS的Shell操作命令+示例

创建目录

[-mkdir [-p] …] #在分布式文件系统上创建目录 -p ,多层级创建

调用格式: hdfs dfs -mkdir (-p) /目录
例如:
- hdfs dfs -mkdir /data
- hdfs dfs -mkdir -p /data/a/b/c

上传命令

[-put [-f] [-p] [-l] … ] #将本地文件系统的文件上传到分布式文件系统中
调用格式: hdfs dfs -put /本地文件 /分布式文件系统路径
注意:直接写/是省略了文件系统的名称hdfs://ip;port

例如:
- hdfs dfs -put /root/a.txt /data/
- hdfs dfs -put /root/logs/* data/

其他指令:
[-moveFromLocal … <>dst] #将本地文件系统的文件上传到分布式文件系统中
[-copyFromLocal [-f] [-p] [-l] … ]

查看命令

[-ls [-d] [-h] [ …]]
调用格式: hdfs dfs -ls / #查看分布式文件系统的目录里内容

[-cat [-ignoreCrc] …]
调用格式: hdfs dfs -cat /xxx.txt #查看分布式文件系统的文件内容
[-tail [-f] ]
调用格式: hdfs dfs -tail /xxx.txt #查看分布式文件系统的文件内容,注意:默认最多查看1000行

下载命令

[-copyToLocal [-p] [-ignoreCrc][-crc] … ]
注意:本地路径下的文件可以不存在
[-moveToLocal ]
注意:从hdfs的某个路径将数据剪切到本地,已经被遗弃了
[-get [-p] [-ignoreCrc] [-crc] … ]
调用格式:同copyToLocal

合并下载

hdfs dfs [generic options] -getmerge [-n1]
调用格式: hdfs dfs -getmerge hdfs上面的路径 本地的路径
实例: hdfs dfs -getmerge /hadoopdata/*.xml /root/test.txt

删除命令

[-rm [-f] [-r|-R] [-skipTrash] …]
注意:如果删除文件夹需要加-r

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

…]
注意:必须是空文件夹,如果非空必须使用rm删除

拷贝命令

hdfs dfs [generic options] -cp [-f] [-p -p[topax]] …
调用格式: hdfs dfs -cp /hdfs路径1 /hdfs路径2
实例: hdfs dfs -cp /input /input2

移动命令

hdfs dfs [generic options] -mv …
调用格式:hdfs dfs -mv /hdfs的路径1 /hdfs的另一个路径2
实例:hdfs dfs -mv /aaa /bbb

创建空文件

hdfs dfs [generic options] -touchz
调用格式:hdfs dfs touchz /hadooptest.txt

向文件中追加内容

[-appendToFile … ]
调用格式:hdfs dfs -appendToFile 本地文件 hdfs上的文件
注意:不支持在中间随意增删改操作

修改文件权限

跟本地的操作一致,-R是让子目录或文件也进行相应的修改
[-chgrp [-R] GROUP PATH…]
[-chmod [-R] <MODE[,MODE]… | OCTALMODE> PATH…]
[-chown [_R] [OWNER][:[GROUP]] PATH…]
实例:hdfs dfs -chmod 777 /input

修改文件副本数量

[-setrep [-R] [-w] …]
调用格式: hadoop fs -setrep 3 / #将hdfs根目录及子目录下的内容设置成3个副本
注意:当设置的副本数量与初始化是默认的副本数量不一致时,集群会做出反应,比原来多了会自动进行复制

文件测试

hdfs dfs [generic options] -test -[defsz]

参数说明:-e:文件是否存在 存在返回0 -z:文件是否为空 为空返回0 -d:是否是路径(目录),是 返回0
调用格式: hdfs dfs -test -d 文件
实例: hdfs dfs -test -d /shelldata/111.txt && echo “ok” || echo “no”
解释:测试当前内容是否为文件夹,如果是返回ok,如果不是返回no

查看文件夹及子文件夹数量

hdfs dfs [generic options] -count [-q] [-h]
调用格式: hdfs dfs -count /hadoop

查看文件状态

hdfs dfs [generic options] -stat [format]
命令的作用:当向hdfs上写文件时,可以通过dfs.blocksize配置项来设置文件的block的大小。
这就导致了hdfs上 的不同的文件block的大小是不相同的。
有时候想知道hdfs上某个文件的block大小,可以预先估算一下计算的task 的个数。
stat的意义:可以查看文件的一些属性。

调用格式: hdfs dfs -stat [format] 文件路径
format的形式:
%b:打印文件的大小(目录大小为0)
%n:打印文件名
%o:打印block的size
%r:打印副本数
%y:utc时间 yyyy-MM-dd HH:mm:ss
%Y:打印自1970年1月1日以来的utc的微秒数
%F:目录打印directory,文件打印regular file

注意:
1)当使用-stat命令但不指定format时,只打印创建时间,相当于%y
2)-stat 后面只跟目录,%r,%o等打印的都是0,只有文件才有副本和大小

实例: hdfs dfs -stat %b-%n-%o-%r /input/file1

查看磁盘利用率及文件大小

[-df [-h] [ …]] 查看分布式系统的磁盘使用情况
[-du [-s] [-h] …] 查看分布式系统当前路径下文件的情况 -h :human 以人类可读的方式显示

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ChlinRei

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

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

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

打赏作者

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

抵扣说明:

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

余额充值