Hadoop fs -du-h 按大小排序 M、G、T、P、E、Z、Y

May*_*ang 11 bash shell hadoop hadoop-partitioning hadoop2

我正在运行这个命令——

sudo -u hdfs hadoop fs -du -h /user | sort -nr 
Run Code Online (Sandbox Code Playgroud)

并且输出未按 gigs、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; }' 
Run Code Online (Sandbox Code Playgroud)

但似乎没有用。

有没有一种方法或命令行标志我可以用来让它排序并且输出应该看起来像--

123T  /xyz
124T  /xyd
126T  /vat
127G  /ayf
123G  /atd
Run Code Online (Sandbox Code Playgroud)

请帮忙

问候马尤尔

Nei*_*eil 13

hdfs dfs -du -h <PATH> | sed 's/ //' | sort -hr

sed将数字和单位之间的空格去掉,之后sort就能理解了。


小智 7

hdfs dfs -du -h <PATH> | awk '{print $1$2,$3}' | sort -hr
Run Code Online (Sandbox Code Playgroud)

简短说明:

  • hdfs命令获取输入数据。
  • 唯一awk的打印前三个字段,第二个和第三个字段之间有一个逗号。
  • of比较人类可读的数字,例如-hor ,而 则反转排序顺序。sort2K4G-r


Bru*_*yne -1

尝试这个排序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