【问题标题】:Get the last updated file in HDFS获取 HDFS 中最后更新的文件
【发布时间】:2018-05-05 05:47:59
【问题描述】:

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

我们将不胜感激。

提前致谢。

【问题讨论】:

    标签: bash shell unix hadoop


    【解决方案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 格式返回日期,因此您可以按字母顺序对其进行排序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-27
        • 1970-01-01
        • 1970-01-01
        • 2018-05-20
        • 2020-11-25
        • 1970-01-01
        相关资源
        最近更新 更多