hadoop fs-du-h按大小排序m、g、t、p、e、z、y

v1uwarro  于 2021-06-02  发布在  Hadoop
关注(0)|答案(4)|浏览(1689)

我正在执行这个命令--

sudo -u hdfs hadoop fs -du -h /user | sort -nr

而且输出不是按gig、tb、gb排序的
我发现这个命令-

hdfs dfs -du -s /foo/bar/*tobedeleted | sort -r -k 1 -g | awk '{ suffix="KMGT"; for(i=0; $1>1024 && i < length(suffix); i++) $1/=1024; print int($1) substr(suffix, i, 1), $3; }'

但似乎不起作用。
有没有一种方法或命令行标志,我可以使用它排序和输出应该像--

123T  /xyz
124T  /xyd
126T  /vat
127G  /ayf
123G  /atd

请帮忙
向玛雅问好

cwtwac6a

cwtwac6a1#

hdfs dfs -du -h | sed 's/ //' | sort -hr sed 将去掉数字和单位之间的空格,然后 sort 会明白的。

ia2d9nvy

ia2d9nvy2#

试试这个来分类
hdfs dfs -ls -h /path sort -r -n -k 5 -rw-r--r-- 3 admin admin 108.5 M 2016-05-05 17:23 /user/admin/2008.csv.bz2 -rw-r--r-- 3 admin admin 3.1 M 2016-05-17 16:19 /user/admin/warand_peace.txt Found 11 items drwxr-xr-x - admin admin 0 2016-05-16 17:34 /user/admin/oozie-oozi drwxr-xr-x - admin admin 0 2016-05-16 16:35 /user/admin/Jars drwxr-xr-x - admin admin 0 2016-05-12 05:30 /user/admin/.Trash drwxrwxrwx - admin admin 0 2016-05-16 11:21 /user/admin/2015_11_21 drwxrwxrwx - admin admin 0 2016-05-16 11:21 /user/admin/2015_11_20 drwxrwxrwx - admin admin 0 2016-05-16 11:21 /user/admin/2015_11_19 drwxrwxrwx - admin admin 0 2016-05-16 11:21 /user/admin/2015_11_18 drwx------ - admin admin 0 2016-05-16 17:38 /user/admin/.staging

5kgi1eie

5kgi1eie3#

这是一个相当古老的问题,但在尝试做同样的事情时偶然发现了它。当您提供-h(人类可读标志)时,它将大小转换为不同的单位,以便于人类阅读。如果不使用该标志,我们将获得文件长度的聚合摘要(以字节为单位)。

sudo -u hdfs hadoop fs -du -s '/*' | sort -nr

不容易阅读,但意味着你可以正确地排序。
看到了吗https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/filesystemshell.html#du 更多细节。

uklbhaso

uklbhaso4#

hdfs dfs -du -h <PATH> | awk '{print $1$2,$3}' | sort -hr

简要说明:
这个 hdfs 命令获取输入数据。
这个 awk 只打印前三个字段,在第二个和第三个字段之间有一个逗号。
这个 -hsort 比较人类可读的数字,比如 2K 或者 4G ,而 -r 反转排序顺序。

相关问题