2016-01-09 15 views
5

Tôi muốn tập tin cập nhật mới nhất từ ​​một trong các thư mục HDFS của tôi. Mã lệnh về cơ bản sẽ lặp qua các thư mục và thư mục con và lấy đường dẫn tệp mới nhất với tên tệp. Tôi có thể lấy tệp mới nhất trong hệ thống tệp cục bộ nhưng không chắc chắn cách thực hiện nó cho HDFS.Tải tập tin cập nhật mới nhất ở HDFS

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

Mã ở trên đang hoạt động đối với hệ thống tệp cục bộ. Tôi có thể lấy ngày, giờ và tên tệp từ HDFS, nhưng làm thế nào để tôi nhận được tệp mới nhất bằng cách sử dụng 3 tham số này?

này là mã tôi đã cố gắng:

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

Bất kỳ trợ giúp sẽ được đánh giá cao.

Xin cảm ơn trước.

Trả lời

7

một này làm việc cho tôi:

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

Kết quả là toàn bộ đường dẫn tập tin.

2

Đây là lệnh:

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

của bạn kịch bản tự nó là đủ tốt. Hadoop trả về các ngày trong định dạng HH24: MI: SS theo định dạng YYYY-MM-DD và do đó bạn có thể sắp xếp chúng theo thứ tự bảng chữ cái.

Các vấn đề liên quan