如何在HDFS中查询文件或文件夹的创建日期
获取HDFS文件/文件夹的创建日期
嘿,我完全懂你的困扰!默认的hadoop fs -ls确实只展示修改时间,要拿到创建日期(也就是HDFS元数据里的creationTime),有几个实用的方法:
方法1:使用hadoop fs -stat命令(最直接)
stat命令允许你自定义输出HDFS文件的元数据字段,专门可以提取创建时间。
查看单个文件/目录的创建时间:
hadoop fs -stat "%c %n" /user/myUser/your-file-or-dir这里的
%c会输出可读格式的创建时间(比如2024-05-20 14:30:00),%n是文件名/目录名。批量列出目录下所有内容的创建时间:
hadoop fs -stat "%c %n" /user/myUser/*如果需要时间戳格式(方便后续脚本处理),把
%c换成%C即可:hadoop fs -stat "%C %n" /user/myUser/*
方法2:结合find和stat遍历深层目录
如果你的目录有多层嵌套,想要递归获取所有文件/文件夹的创建时间,可以用find命令配合stat:
hadoop fs -find /user/myUser/ -exec stat "%c %p" {} \;
这里%p会输出完整的文件/目录路径,确保你清楚每个条目对应的位置。
小提示:HDFS时间字段说明
HDFS里有三个核心时间字段,别搞混了:
creationTime:文件/文件夹的创建时间,这个是一定会记录的,不会被禁用modificationTime:ls默认显示的修改时间accessTime:文件的访问时间,默认可能被关闭(因为频繁更新会影响性能),所以不一定可靠
如果不确定你的Hadoop版本支持哪些stat格式符,直接运行hadoop fs -stat --help就能查看详细说明。
内容的提问来源于stack exchange,提问作者Michail N
相关产品推荐
相关产品推荐

