V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gouchaoer
V2EX  ›  Java

hdfs 占用空间 df 和 du 不一致问题

  •  
  •   gouchaoer · 2017-08-07 12:20:17 +08:00 · 5038 次点击
    这是一个创建于 2700 天前的主题,其中的信息可能已经有所发展或是发生改变。
    hadoop fs -df -h
    Filesystem        Size   Used  Available  Use%
    hdfs://cluster1  2.7 T  1.2 T      1.3 T   44%
    
    hadoop fs -du -s -h /user/hive/warehouse
    252.5 G  /user/hive/warehouse
    

    为啥 du 和 df 算出来不一样,我 hdfs 只有 warehouse 里几百 G 的东西,绝不会用了 1.2 个 T ; 我经常性的把 hdfs 的某个目录作为临时目录用完就删除了,会不会是这个原因?

    9 条回复    2017-08-07 15:05:01 +08:00
    defunct9
        1
    defunct9  
       2017-08-07 12:29:47 +08:00
    找找垃圾箱里的东西吧,上次就是垃圾箱未回收导致 hdfs 挂了
    gouchaoer
        3
    gouchaoer  
    OP
       2017-08-07 12:38:28 +08:00
    @defunct9 不是的垃圾箱为空
    knightdf
        4
    knightdf  
       2017-08-07 12:49:47 +08:00
    du 和 df 本来就不一致
    zdyxry
        5
    zdyxry  
       2017-08-07 12:57:17 +08:00
    Infernalzero
        6
    Infernalzero  
       2017-08-07 12:58:16 +08:00
    lsof |grep deleted
    如果没有文件句柄未被释放的,就说明你磁盘挂载的时候出了问题,检查下对应的挂载
    gouchaoer
        7
    gouchaoer  
    OP
       2017-08-07 13:14:40 +08:00 via Android
    @zdyxry
    @Infernalzero linux 下的 du 和 df 并没有问题,hdfs 是几台机器抽象出来的,hadoop 的 du 和 df 是 hdfs 上的
    virusdefender
        8
    virusdefender  
       2017-08-07 13:18:37 +08:00
    du 默认不显示隐藏文件的
    cxbig
        9
    cxbig  
       2017-08-07 15:05:01 +08:00 via iPhone
    du 只显示文件占用
    df 还包括了系统进程占用

    比方说某个进程卡死,关联的 log 文件缓存可以吃光硬盘空间。这个时候 du 是找不出来的,用 lsof 可以找到。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1105 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:41 · PVG 02:41 · LAX 10:41 · JFK 13:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.