我正在运行此命令 -
sudo -u hdfs hadoop fs -du -h /user | sort -nr
并且输出没有按演出,Terabytes,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
请帮忙
关于Mayur
这是一个相当古老的问题,但在尝试做同样的事情时偶然发现了它。当您提供-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。
试试这个来排序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