hdfs dfs 命令学习实践


1、hdfs dfs -ls

查看目录或文件
参数:
[-C] [-d] [-h] [-R] [-t] [-S] [-r] [-u] [ ...]
参数释义:
-C 仅显示文件和目录的路径
-d 目录列为普通文件
-h 以人类可读的方式显示文件大小,而不是按字节数
-R 递归地列出目录的内容
-t 按修改时间对文件排序(最近的第一次)
-S 按大小对文件进行倒序排序
-r 颠倒顺序排列

-u 使用上次访问的时间而不是修改来显示和排序

示例:
1.1 以 K M G 可读方式显示文件大小(以首字母正序、倒序排列)
hdfs dfs -ls -h /tmp/04885
hdfs dfs -ls -h -r /tmp/04885

1.2 以 K M G 可读方式显示文件大小,包括子目录下的子文件(以首字母正序、倒序排列)
hdfs dfs -ls -h -R /tmp/04885
hdfs dfs -ls -h -R -r /tmp/04885

1.3 按文件修改时间(以首字母倒序、正序排列)
hdfs dfs -ls -d /tmp/04885
hdfs dfs -ls -h -t /tmp/04885
hdfs dfs -ls -h -t -r /tmp/04885
hdfs dfs -ls -h -t -r /tmp/04885 | awk '{print $5,$6,$7}'

1.4 按文件大小进行倒序排序
hdfs dfs -ls -h -S /tmp/04885
hdfs dfs -ls -h -S -r /tmp/04885

1.5 仅打印显示出 文件全路径(以首字母正序、倒序排列)
hdfs dfs -ls -h -C /tmp/04885
hdfs dfs -ls -h -C -r /tmp/04885

1.6 打印显示出路径
hdfs dfs -ls -d /tmp/04885
hdfs dfs -ls -d -C /tmp/04885

2、hdfs dfs -count

统计指定路径下,目录数、文件数、字节数
参数:
[-q] [-h] [-v] [-t []] [-u] [-x] ... 
参数释义:
-q 显示配额和配额的使用情况
-h 以人类可读的方式格式化文件大小,而不是按字节数
-v 显示标题行
-t [] 按存储类型显示配额,需要与参数-q或-u一起使用
-u 显示配额和配额的使用情况,但不显示详细的内容摘要
-x 不计算快照

示例:
hdfs dfs -count -q -h -v /user/hive/warehouse/import_db.db
hdfs dfs -count -u -h -v /user/hive/warehouse/import_db.db

3、hdfs dfs -du 

显示目录或文件的使用情况
参数:
[-s] [-h] [-x] ... 
参数释义:

-h 以人类可读的方式格式化文件大小,而不是按字节数
-v 显示标题行
-s 显示总使用情况,不显示每个独立目录或文件的使用情况
-x 不计算快照

示例:
hdfs dfs -du -h /tmp/04885
hdfs dfs -du -h -v /tmp/04885
hdfs dfs -du -h -s /tmp/04885

4、hdfs dfs -rm 

删除目录或文件
参数:
[-f] [-r|-R] [-skipTrash] [-safely] ...
参数释义:
-f 如果文件不存在,不显示诊断消息或修改退出状态以反映错误
-r或-R 递归删除目录
-skipTrash 删除时不经过回收站,直接删除
-safely 需要安全确认

示例:
hdfs dfs -rm -r -f -skipTrash /user/04885/.Trash/*
hdfs dfs -rm -r -f -skipTrash /user/04885/[0-9]*

删除多个用户回收站里的文件
for i in 04885 conda jupyter;do hdfs dfs -rm -r -f -skipTrash /user/$i/.Trash/*;echo "-------";done

5、创建目录

hdfs dfs -mkdir [-p]

6、创建一个空文件

hdfs dfs -touchz

7、复制目录或文件

hdfs dfs -cp /old_path /new_path

8、剪切目录或文件

hdfs dfs -mv ...


9、上传目录或文件

hdfs dfs -put ...

10、下载目录或文件

hdfs dfs -get ...


11、修改目录或文件权限

hdfs dfs -chmod 664 -R

12、修改目录或文件所有者和组

hdfs dfs -chown -R OWNER:GROUP


13、显示文件末尾的1kb内容

hdfs dfs -tail [-f]
参数:
-f 随着文件的增长显示附加数据


14、合并下载文件

hdfs dfs -getmerge [-nl] [-skip-empty-file]
参数:
-nl 在每个文件的末尾添加换行符
-skip-empty-file 不要为空文件添加新行字符

示例:
hdfs dfs -getmerge /user/hive/warehouse/import_db.db/table_name ./data_file_202311.dat

15、是否存在某文件

hdfs dfs -test -e 文件或目录名
查看检测结果:
echo $?
若输出结果为0,则说明文件或目录存在,若为1,则说明文件或目录不存在。

hdfs dfs -test -e /tmp/paopi/wangdai/${yestoday}_finish.ok
if [ $? -eq 0 ]
then
    echo "文件或目录存在"
else
    echo "文件或目录不存在"
fi

应用场景:
1、常用来验证昨日跑批是否完成;跑批完成在hdfs生成标记文件 ${yestoday}_finish.ok ,再次跑批时,验证昨日跑批是否完成。
2、hive表数据分区是否存在
3、使用脚本,批量建表。读取一个库的多张表结构,在hive另外一个库建表时,首先判断下要创建的表是否存在,可以检测表数据文件
 


16、文件配额操作


17、快照操作


18、元数据的备份与还原


参考链接

https://blog.csdn.net/weixin_42951763/article/details/120587862

你可能感兴趣的:(bigdata,hdfs)