gpt4 book ai didi

unix - hadoop命令从hadoop中的目录获取最新的子目录名称

转载 作者:可可西里 更新时间:2023-11-01 15:05:01 25 4
gpt4 key购买 nike

如何在 hadoop 的目录中找到最新创建的子目录?例如在 hadoop 中,如果我有一个名为 mgm 的目录,它有 2 个子目录 1 和 2,如下所示:

/user/mgm/1
/user/mgm/2

我想知道 1 或 2 中哪一个是先创建的。

hadoop fs -ls -t /user/mgm/ | head -1 

对我不起作用。它说 “非法选项 -t”

最佳答案

hdfs dfs -ls-t 选项是针对 Apache Hadoop 2.8.0 的新功能,目前尚未发布。这在 JIRA 问题 HADOOP-8934 中进行了跟踪.我不确定为什么该选项在 ls 中可见已有文档。

与此同时,另一种选择是使用 hdfs dfs -stat带有包含修改时间的格式字符串的命令。这是一个示例,演示我们如何使用 hdfs dfs -statdir2 识别为具有最新修改时间的子目录。

> hdfs dfs -mkdir /user/mgm/dir1

> hdfs dfs -mkdir /user/mgm/dir2

> hdfs dfs -ls /user/mgm
Found 2 items
drwxr-xr-x - chris supergroup 0 2015-12-31 14:38 /user/mgm/dir1
drwxr-xr-x - chris supergroup 0 2015-12-31 14:38 /user/mgm/dir2

> hdfs dfs -help stat
-stat [format] <path> ... :
Print statistics about the file/directory at <path>
in the specified format. Format accepts filesize in
blocks (%b), type (%F), group name of owner (%g),
name (%n), block size (%o), replication (%r), user name
of owner (%u), modification date (%y, %Y).
%y shows UTC date as "yyyy-MM-dd HH:mm:ss" and
%Y shows milliseconds since January 1, 1970 UTC.
If the format is not specified, %y is used by default.

> hdfs dfs -stat '%y %n' /user/mgm/*
2015-12-31 22:38:16 dir1
2015-12-31 22:38:19 dir2

> hdfs dfs -stat '%Y %n' /user/mgm/*
1451601496198 dir1
1451601499150 dir2

> hdfs dfs -stat '%Y %n' /user/mgm/* | sort -nr | head -1 | awk '{ print $NF }'
dir2

How do I find the latest subdirectory created inside a directory in hadoop?

请记住,所有这些功能都引用修改时间,而不是创建时间。修改时间可以随着目录内容的变化而更新。如果您真的非常需要创建时间,请注意这一点。没有选项可用于将创建时间的可见性作为与修改时间分开跟踪的值。

关于unix - hadoop命令从hadoop中的目录获取最新的子目录名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34551062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com