【问题标题】:Hadoop fs -du-h sorting by size for M, G, T, P, E, Z, YHadoop fs -du-h 按 M、G、T、P、E、Z、Y 的大小排序
【发布时间】:2016-06-28 21:34:00
【问题描述】:

我正在运行这个命令 --

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

并且输出没有按 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; }' 

但似乎没有用。

有没有办法或命令行标志我可以用来使它排序和输出应该看起来像--

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

请帮忙

问候 马尤尔

【问题讨论】:

    标签: bash shell hadoop hadoop2 hadoop-partitioning


    【解决方案1】:
    hdfs dfs -du -h <PATH> | awk '{print $1$2,$3}' | sort -hr
    

    简短说明:

    • hdfs 命令获取输入数据。
    • awk 仅打印前三个字段,第二个和第三个之间用逗号隔开。
    • sort-h 比较人类可读的数字,例如2K4G,而-r 则颠倒排序顺序。

    【讨论】:

    • 感谢您的贡献。您能否如此友善并详细说明正在发生的事情,并与问题相关而不是纯代码-sn-p 答案?
    【解决方案2】:

    hdfs dfs -du -h &lt;PATH&gt; | sed 's/ //' | sort -hr

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

    【讨论】:

    • 它按预期工作,因为当仅使用“sort -hr”时,订单不是按单位排序,而是按人类可读的文件大小排序,即 45 MB、50 GB、75 MB、80 GB。谢谢
    【解决方案3】:

    这是一个相当古老的问题,但在尝试做同样的事情时偶然发现了它。当您提供 -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

    【讨论】:

      【解决方案4】:

      我会使用一些小脚本。它很原始但很可靠

      #!/bin/bash
      PATH_TO_FOLDER="$1"
      hdfs dfs -du -h $PATH_TO_FOLDER > /tmp/output
      cat /tmp/output | awk '$2 ~ /^[0-9]+$/  {print $1,$NF}' | sort -k1,1n
      cat /tmp/output | awk ' {if ($2 == "K" ) print $1,$2,$NF}' | sort -k1,1n
      cat /tmp/output | awk ' {if ($2 == "M" ) print $1,$2,$NF}' | sort -k1,1n
      cat /tmp/output | awk ' {if ($2 == "G" ) print $1,$2,$NF}' | sort -k1,1n
      cat /tmp/output | awk ' {if ($2 == "T" ) print $1,$2,$NF}' | sort -k1,1n
      rm /tmp/output
      

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 它不起作用:(,我正在尝试获取磁盘使用情况。但我修复了它 -- sort -r -k 1 -g | awk '{ suffix="KMGT"; for( i=0; $1>1024 && i
        猜你喜欢
        • 2011-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-19
        • 1970-01-01
        • 2022-11-04
        • 1970-01-01
        • 2016-07-03
        相关资源
        最近更新 更多