获取HDFS

时间:2016-01-09 01:41:08

标签: bash shell unix hadoop

我想从我的一个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}'

任何帮助将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分:14)

这个对我有用:

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

输出是整个文件路径。

答案 1 :(得分:3)

这是命令:

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

你自己的脚本已经足够好了。 Hadoop以YYYY-MM-DD HH24:MI:SS格式返回日期,因此您可以按字母顺序对它们进行排序。