我遇到了这个奇怪的问题,我在 S3N 上创建的所有目录都具有相同的时间戳,即 1969-12-31
我使用“hadoop fs -mkdir”并使用 mapreduce 作业创建了目录并获得了相同的时间戳。
如何获得正确的时间戳?谢谢
这只是 s3-hdfs 实现中内置的一个 hack,因为 s3 并没有真正的目录概念,所以 hadoop 无处可读取目录创建/修改日期。
事实上,在 s3 中,所有文件都存储为根级对象,并且键中允许使用斜线“/”。因此,与 hdfs 不同的是,键前缀(目录)没有元数据。
例如,在 hdfs 中:
/some/path.txt
<- /some 和 /some/path.txt 都有包含创建/修改日期的元数据
在 S3 中:
/some/path.txt
是文件的名称。没有目录。添加斜杠作为分隔符只是允许 hadoop 假装 s3 具有目录的约定。如果你喜欢,你可以称它为 some-path.txt(尽管 hadoop 不会那么高兴)
因此,当您运行类似的东西时hadoop fs -ls s3n://bucket/directory1/
,只需对创建日期使用默认值。