Bash Hadoop fs-du-h按大小对M、G、T、P、E、Z、Y进行排序
我正在运行这个命令-- 而且输出不是按GIG、TB、gb排序的 我发现这个命令-Bash Hadoop fs-du-h按大小对M、G、T、P、E、Z、Y进行排序,bash,shell,hadoop,hadoop2,hadoop-partitioning,Bash,Shell,Hadoop,Hadoop2,Hadoop Partitioning,我正在运行这个命令-- 而且输出不是按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; }' 请帮忙 问候 Mayur尝试使
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; }'
请帮忙
问候
Mayur尝试使用此方法进行排序
hdfs dfs-ls-h/路径排序-r-n-k5
-rw-r--r--3管理员108.5米2016-05-05 17:23/user/admin/2008.csv.bz2
-rw-r--r--3管理员管理员3.1米2016-05-17 16:19/user/admin/warand_peace.txt
找到11件物品
drwxr-xr-x-管理员管理员0 2016-05-16 17:34/user/admin/oozie-oozi
drwxr-xr-x-管理员管理员0 2016-05-16 16:35/user/admin/Jars
drwxr-xr-x-管理员管理员0 2016-05-12 05:30/user/admin/.Trash
DRWXRWX-admin admin 0 2016-05-16 11:21/user/admin/2015\u 11\u 21
DRWXRWX-admin admin 0 2016-05-16 11:21/user/admin/2015\u 11\u 20
DRWXRWX-admin admin 0 2016-05-16 11:21/user/admin/2015_11_19
DRWXRWX-admin admin 0 2016-05-16 11:21/user/admin/2015\u 11\u 18
drwx------admin admin 0 2016-05-16 17:38/user/admin/.staging
这是一个相当老的问题,但在尝试做同样的事情时偶然发现了它。当您提供-h(人类可读标志)时,它将大小转换为不同的单位,以便于人类阅读。通过关闭该标志,我们可以获得文件长度的汇总摘要(以字节为单位)
不容易阅读,但这意味着你可以正确排序
有关更多详细信息,请参见。hdfs dfs-du-h | awk'{print$1$2,$3}'| sort-hr
hdfs dfs -du -h <PATH> | awk '{print $1$2,$3}' | sort -hr
简要说明:
命令获取输入数据hdfs
只打印前三个字段,在第二个和第三个字段之间有一个逗号awk
- 排序的
比较人类可读的数字,如-h
或2K
,而4G
反转排序顺序-r
hdfs-dfs-du-h | sed's//'| sort-hr
sed
将去掉数字和单位之间的空格,然后sort
将能够理解它。它不起作用:(,我正在尝试获取磁盘使用情况。但是我修复了它--sort-r-k1-g{suffix=“KMGT”;for(I=0;$1>1024&&I123T /xyz
124T /xyd
126T /vat
127G /ayf
123G /atd
sudo -u hdfs hadoop fs -du -s '/*' | sort -nr
hdfs dfs -du -h <PATH> | awk '{print $1$2,$3}' | sort -hr