HDFS的shell命令

启动hdfs集群

访问HDFS的命令

1. 创建目录

hdfs dfs -mkdir (-p) /目录
hdfs dfs -mkdir /data
hdfs dfs -mkdir -p /a/b/c/d/e/f/g

image

2. 上传指令

格式:hdfs dfs -put /本地文件 /分布式文件系统

hdfs dfs -put a1 /data

image

3. 创建空文件

hdfs dfs -touchz /empty/empty01

image

4. 向HDFS中的文件添加内容

格式:hdfs dfs -appendToFile 本地文件 hdfs上的文件

5. 下载指令

格式:hdfs dfs -get hdfs上的文件或目录 本地目录

6. 合并下载

格式:hdfs dfs -getmerge hdfs上的路径 本地的路径

7. 移动hdfs的文件或更名

7.1 将file*的文件移动到data文件夹中

hdfs dfs -mv /file* /data

7.2 更改文件夹test为test01

hdfs dfs -mv /test /test01

8. 复制hdfs的文件到另一文件夹

8.1 将data文件夹的file01文件拷贝一份到根目录

hdfs dfs -cp /data/file01 /

9. 删除指令

9.1 删除根目录下的file01文件

hdfs dfs -rm /file01

9.2 删除根目录的a文件夹

hdfs dfs -rm -r /a

9.3 删除根目录下的test01文件夹(此指令只能删除空文件夹)

hdfs dfs -rmdir /test01

10. 查看磁盘利用率和文件大小

10.1 查看磁盘的使用情况

hdfs dfs -df /

image

10.2 查看磁盘的使用情况

hdfs dfs -df -h /

image

10.3 查看data文件夹的每个文件使用情况

hdfs dfs -du -h /data

image

10.4 查看data文件夹总文件的使用情况

hdfs dfs -du -h -s /data

image

11. 修改权限

11.1 修改data文件夹的权限为777

hdfs dfs -chmod 777 /data

11.2 修改data文件夹的拥有者和组为shawn

hdfs dfs -chown shawn:shawn /data

image

12. 修改文件的副本数

12.1 修改data目录下的文件副本数为5

hdfs dfs -setrep 5 /data

image

13. 查看文件的状态

hdfs dfs [generic options] -stat [format] <path> ...
命令的作用:当向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

13.1 查看data目录的file01文件的创建时间和大小

hdfs dfs -stat time:%y,size:%b /data/file01

image

14. 测试

参数说明:-e:文件是否存在 存在返回0 -z:文件是否为空 为空返回0 -d:是否是路径(目录) ,是返回0

14.1 判断data目录下的file01文件是否存在

 hdfs dfs -test -e /data/file01 && echo "exists" || echo "no exists"

image

14.2 判断data目录下的file09文件是否存在

hdfs dfs -test -e /data/file09 && echo "exists" || echo "no exists"

image

posted @ 2022-02-16 22:04  递茶大户  阅读(580)  评论(0编辑  收藏  举报