1、hdfs dfs -ls
查看目录或文件
参数:
[-C] [-d] [-h] [-R] [-t] [-S] [-r] [-u] [<path> ...]
参数释义:
-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 [<storage type>]] [-u] [-x] <path> ...
参数释义:
-q 显示配额和配额的使用情况
-h 以人类可读的方式格式化文件大小,而不是按字节数
-v 显示标题行
-t [<storage type>] 按存储类型显示配额,需要与参数-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] <path> ...
参数释义:
-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] <src> ...
参数释义:
-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] <path>
6、创建一个空文件
hdfs dfs -touchz <path>
7、复制目录或文件
hdfs dfs -cp /old_path /new_path
8、剪切目录或文件
hdfs dfs -mv <src> ... <dst>
9、上传目录或文件
hdfs dfs -put <localsrc> ... <dst>
10、下载目录或文件
hdfs dfs -get <src> ... <localdst>
11、修改目录或文件权限
hdfs dfs -chmod 664 -R <path>
12、修改目录或文件所有者和组
hdfs dfs -chown -R OWNER:GROUP <path>
13、显示文件末尾的1kb内容
hdfs dfs -tail [-f] <file>
参数:
-f 随着文件的增长显示附加数据
14、合并下载文件
hdfs dfs -getmerge [-nl] [-skip-empty-file] <src> <localdst>
参数:
-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