永发信息网

如何获取出HDFS已用空间/总空间的值。java FileSystem中有相关的方法吗???

答案:2  悬赏:60  手机版
解决时间 2021-04-06 02:57
回答后补追30悬赏
最佳答案
public List getHdfsstatus() {
        if (conf == null) {
            conf = new Configuration();
            conf.set("fs.default.name","hdfs://CRNOPHQDW2:54310");
        }
        FileSystem fs = null;
        try {
            fs = FileSystem.get(conf);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
        List ret = new ArrayList();
        DistributedFileSystem dfs = (DistributedFileSystem) fs;
        org.apache.hadoop.hdfs.DistributedFileSystem.DiskStatus ds = null;
        try {
            ds = dfs.getDiskStatus();
        } catch (IOException e) {
            e.printStackTrace();
        }
        long capacity = ds.getCapacity();
        long used = ds.getDfsUsed();
        long remaining = ds.getRemaining();
        long presentCapacity = used + remaining;
        String name = "GrobleStatus";
        String value = "GrobleValue";
        BaseItem bitem = new BaseItem(name, value);
        bitem.setMap_value("Configured Capacity"+getunittype(StringUtils.byteDesc(capacity)),
                getunitvalue(StringUtils.byteDesc(capacity)));
        bitem.setMap_value("Present Capacity"+getunittype(StringUtils.byteDesc(presentCapacity)),
                getunitvalue(StringUtils.byteDesc(presentCapacity)));
        bitem.setMap_value("DFS Remaining"+getunittype(StringUtils.byteDesc(remaining)), getunitvalue(StringUtils.byteDesc(remaining)));
        bitem.setMap_value("DFS Used"+getunittype(StringUtils.byteDesc(used)), getunitvalue(StringUtils.byteDesc(used)));
        bitem.setMap_value(
                "DFS Used%",
                StringUtils
                        .limitDecimalTo2(((1.0D * (double) used) / (double) presentCapacity) )
                        );
        ret.add(bitem);
        DatanodeInfo live[] = null;
        try {
            live = dfs
                    .getClient()
                    .datanodeReport(
                            org.apache.hadoop.hdfs.protocol.FSConstants.DatanodeReportType.LIVE);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
        DatanodeInfo dead[] = null;
        try {
            dead = dfs
                    .getClient()
                    .datanodeReport(
                            org.apache.hadoop.hdfs.protocol.FSConstants.DatanodeReportType.DEAD);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
        for (int i = 0; i < live.length; i++) {
            DatanodeInfo dn = live[i];
            ret.add(getbItem(dn));
        }

        for (int j = 0; j < dead.length; j++) {
            DatanodeInfo dn = dead[j];
            ret.add(getbItem(dn));
        }
        return ret;
    }以前写过的 类似的 你可以看下。
全部回答
FileSystem貌似没有吧,有时间下一份源码看看挺好的。。。 再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我家有土特产不知在网上怎么销售 有什么好方
对刚踏入大学的祝福语,催人泪下的高中告别句
求大佬把这个图的背景P掉,万分感谢
winhex怎么查看内存
如图所示的电路中,电源电压保持不变.下列关
求无实物小品表演的题材
蚕丝有哪些特点?
dnf中代人刷图所谓的“试车”是什么意思
苏教版初中必背古诗词,六年级苏教版小学生必
求大神鉴定,新百伦580李小龙版真伪,紫外线
支线和干线有什么区别?
选词填空,45题
有什么网游的角色模型很大 看起来很壮的
写完灯谜谜底也写在那张纸上吗?
目前有哪些技术属于物联网
推荐资讯
与信任有关的诗词
He has impressed his employers considerabl
英镑的英文怎么写,英镑用英语怎么说
一个数的九倍是81这个数的九十倍是多少
东方卫视古诗词节目,贵州卫视中国古诗词
ugg正品一手货源在哪里
动物具有应激性,植物不具有应激性.????????
呼吸困难是什么原因我小孩8岁了晚上睡
百家讲坛.李清照(九)_夕阳岁月-康震种子下载
丹参荔枝肉泡酒功效
有没有四字五字的宋词,宋词4字加2字是什么格
华为3C触摸手指圆球去不掉怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?