S3N で作成したすべてのディレクトリのタイムスタンプが同じ 1969-12-31 であるという奇妙な問題に直面しています。
「hadoop fs -mkdir」と mapreduce ジョブを使用してディレクトリを作成し、同じタイムスタンプを取得しました。
正しいタイムスタンプを取得するにはどうすればよいですか? ありがとう
これは単に s3-hdfs 実装に組み込まれたハックです。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/
は、作成日のデフォルトを使用する必要があります。