获取hdfs中最后更新的文件夹

kt06eoxx  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(631)

我想要一个hdfs目录中最新更新的文件夹。我可以在hdfs文件系统中获取最新的文件,但不确定如何为hdfs one执行该操作。我尝试了shell脚本。

g6ll5ycj

g6ll5ycj1#

使用hadoop 2.6,我可以使用以下命令使其工作:

hdfs dfs -ls -R ${DIR} | grep "^d" | sort -k6,7 | tail -1 | tr -s ' ' | cut -d' ' -f8

哪里, hdfs dfs -ls -R ${DIR} :递归地给出所有目录 grep "^d" :只提供目录 sort -k6,7 :按修改时间排序 tail -1 :列出上次修改的目录 tr -s ' ' :某些格式 cut -d' ' -f8 :只提供目录路径
例子:

[user@nodeX]$ hdfs dfs -ls -R /tmp/a 
drwxr-xr-x   - hduser supergroup          0 2017-08-08 03:08 /tmp/a/b
drwxr-xr-x   - hduser supergroup          0 2017-08-08 03:11 /tmp/a/b/c
drwxr-xr-x   - hduser supergroup          0 2017-08-08 03:12 /tmp/a/b/c/CC
-rw-r--r--   3 hduser supergroup          0 2017-08-08 03:12 /tmp/a/b/c/CC/f2.txt
drwxr-xr-x   - hduser supergroup          0 2017-08-08 03:08 /tmp/a/b/c/d
drwxr-xr-x   - hduser supergroup          0 2017-08-08 03:08 /tmp/a/b/c/d/e
-rw-r--r--   3 hduser supergroup          6 2017-08-08 03:10 /tmp/a/b/c/f1.txt

解决方案:

[user@nodeX]$ hdfs dfs -ls -R /tmp/a | grep "^d" | sort -k6,7 | tail -1 | tr -s ' ' | cut -d' ' -f8

/tmp/a/b/c/CC

相关问题