2016-01-09 15 views
5

Chcę najnowszy zaktualizowany plik z jednego z moich katalogów HDFS. Kod powinien w zasadzie przechodzić przez katalogi i podkatalogi i pobrać najnowszą ścieżkę pliku z nazwą pliku. Udało mi się pobrać najnowszy plik w lokalnym systemie plików, ale nie wiem, jak to zrobić w przypadku systemu plików HDFS.Pobierz ostatni zaktualizowany plik w HDFS

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

Powyższy kod działa na lokalnym systemie plików. Jestem w stanie uzyskać datę, czas i nazwę pliku z HDFS, ale jak mogę uzyskać najnowszy plik przy użyciu tych 3 parametrów?

jest to kod próbowałem:

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

Każda pomoc będzie mile widziane.

Z góry dziękuję.

Odpowiedz

7

Ten pracował dla mnie:

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

Wyjście jest cała ścieżka do pliku.

2

Oto polecenie:

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

Skrypt to samo jest wystarczająco dobre. Hadoop zwraca daty w formacie RRRR-MM-DD HH24: MI: SS i dlatego możesz je posortować alfabetycznie.