hdfs列表并选择最新更新的文件

时间:2018-02-22 19:32:13

标签: hadoop hdfs hadoop2

尝试使用解决方案获取HDFS中文件列表中的最新更新数据。

说明:

hdfs dfs -ls -l /tmp/workday1/list/date=20170101/

上面的命令显示提到的文件夹中的文件列表以及所有者,权限,更新时间等相应属性。

与目录date=20170101一样,还有其他日期的目录,每日数据加载分别具有日期的目录。但是,旧日期目录中更新的文件不必仅是旧日期。今天运行的进程,如果包含一些旧日期的文件,将只将这些文件放在旧日期的文件夹中。

我需要弄清楚,一旦加载完成,我就会创建一个今天更新的所有文件的列表。我唯一的限制是我需要根据更新的时间戳属性来解决这个问题。文件名不包含任何日期因子。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我正以错误的方式接近它;以下是我对此的回答。

hdfs dfs -ls -t -r -R -d ${path-to-hdfs-area}/date*/ | grep $currentDate | awk '{print $8}'

上面的命令将给出目录列表,如果需要文件列表和目录,我们可以删除-d选项。

hdfs dfs -ls -t -r -R ${path-to-hdfs-area}/date*/ | grep $currentDate | awk '{print $8}'

其中,currentDate= date +%Y-%m-%d