【问题标题】:HDFS space consumed: "hdfs dfs -du /" vs "hdfs dfsadmin -report"消耗的 HDFS 空间:“hdfs dfs -du /”与“hdfs dfsadmin -report”
【发布时间】:2016-03-15 14:15:01
【问题描述】:

哪种工具适合测量 HDFS 空间消耗?

当我总结“hdfs dfs -du /”的输出时,与“hdfs dfsadmin -report”(“DFS Used”行)相比,我总是得到更少的空间消耗。有没有du没有考虑的数据?

【问题讨论】:

    标签: hadoop hdfs


    【解决方案1】:

    Hadoop 文件系统通过将数据副本放置到多个节点来提供重新标记存储。副本数是复制因子,通常大于1。

    命令hdfs dfs -du / 显示空间在没有复制的情况下消耗您的数据。

    命令hdfs dfsadmin -report(行 DFS Used)显示实际磁盘使用情况,同时考虑到数据复制。所以从dfs -ud命令得到的数字应该是大几倍。

    【讨论】:

    • "hdfs dfs -du" 在以后的 hadoop 版本中输出(没有和有复制的大小)
    • 为什么dfs -du -s(字节)和hdfs dfs -count -v(假设CONTENT_SIZE字段的字节相同)是(接近但)不一样值?
    【解决方案2】:

    HDFS 存储的工作原理简介:

    Let say replication factor = 3 (default) 
    Data file size = 10GB (i.e xyz.log)
    HDFS will take 10x3 = 30GB to store that file
    

    根据您使用的命令类型,您将获得不同的 HDFS 占用空间值(10GB 与 30GB)

    如果您使用的是最新版本的 Hadoop,请尝试以下命令。就我而言,这在 Hortonworks Data Platform (HDP) 2.3.* 及更高版本上运行良好。这也应该适用于 cloudera 的最新平台。

    hadoop fs -count -q -h -v /path/to/directory
    

    (-q = 配额,-h = 人类可读值,-v = 详细)

    此命令将在输出中显示以下字段。 QUOTA REMAINING_QUOTA SPACE_QUOTA REMAINING_SPACE_QUOTA DIR_COUNT FILE_COUNT CONTENT_SIZE FILE_NAME

    在哪里

    CONTENT_SIZE = real file size without replication (10GB) and 
    SPACE_QUOTA = space occupied in HDFS to save the file (30GB)
    

    注意事项: 在此处控制复制因子:修改默认 hadoop 安装目录的 conf/ 目录下 hdfs-site.xml 文件中的“dfs.replication”属性)。如果您有多节点集群,建议使用 Ambari/Cloudera Manager 更改此设置。

    还有其他命令可以检查存储空间。 E.G hadoop fsck, hadoop dfs -dus,

    【讨论】:

    • 为什么dfs -du -s path1(字节)和hdfs dfs -count -v path1(假设CONTENT_SIZE字段的字节相同)是(接近但)不一样值?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    相关资源
    最近更新 更多