2016-01-09 18 views
5

私のHDFSディレクトリの最新の更新ファイルが必要です。コードは、基本的にディレクトリとサブディレクトリをループし、ファイル名で最新のファイルパスを取得する必要があります。ローカルファイルシステムで最新のファイルを取得できましたが、HDFSの場合はそれを行う方法がわかりません。HDFSで最後に更新されたファイルを取得

find /tmp/sdsa -type f -print0 | xargs -0 stat --format '%Y :%y %n' | sort -nr | cut -d: -f2- | head

上記のコードは、ローカルファイルシステムのために働いています。私はHDFSから日付、時刻、ファイル名を取得することができますが、これらの3つのパラメータを使用して最新のファイルを取得するにはどうすればよいですか?

これは私が試したコードです:

hadoop fs -ls -R /tmp/apps | awk -F" " '{print $6" "$7" "$8}'

任意の助けが理解されるであろう。

ありがとうございます。

答えて

7

この1つは私の仕事:

hadoop fs -ls -R /tmp/app | awk -F" " '{print $6" "$7" "$8}' | sort -nr | head -1 | cut -d" " -f3

を出力するファイルパス全体です。ここで

2

はコマンドです:

hadoop fs -ls -R /user| awk -F" " '{print $6" "$7" "$8}'|sort -nr|head|cut -d" " -f3- 

あなたのスクリプトも自己は十分です。 Hadoopは日付をYYYY-MM-DD HH24:MI:SS形式で返します。したがってアルファベット順に並べ替えることができます。

関連する問題