7

Javaからのサブディレクトリを持つHDFSフォルダーサイズにする必要があります。

コマンドラインから -dus オプションを使用できますが、Java を使用して同じものを取得する方法については誰でも助けてくれます。

4

4 に答える 4

15

getContentSummary(Path f)クラスが提供するメソッドを使用できますFileSystem。ディレクトリのサイズをバイト単位で示すメソッドを呼び出すことができるContentSummaryオブジェクトを返します。getSpaceConsumed()

使用法 :

package org.myorg.hdfsdemo;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class GetDirSize {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub

        Configuration config = new Configuration();
        config.addResource(new Path(
                "/hadoop/projects/hadoop-1.0.4/conf/core-site.xml"));
        config.addResource(new Path(
                "/hadoop/projects/hadoop-1.0.4/conf/core-site.xml"));
        FileSystem fs = FileSystem.get(config);
        Path filenamePath = new Path("/inputdir");
        System.out.println("SIZE OF THE HDFS DIRECTORY : " + fs.getContentSummary(filenamePath).getSpaceConsumed());
    }

}

HTH

于 2013-05-16T18:56:12.070 に答える