Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Hadoop fs-du-h按大小对M、G、T、P、E、Z、Y进行排序_Bash_Shell_Hadoop_Hadoop2_Hadoop Partitioning - Fatal编程技术网

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

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尝试使

我正在运行这个命令--

而且输出不是按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-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