1

その点で、私はHadoopとJavaが初めてです。私が書いているMapReduceドライバーから、HDFS上のフォルダー内のファイルの数をカウントしようとしています。MapReduce ジョブを実行するときに使用するディレクトリを渡すことができるようにしたいので、HDFS シェルを呼び出さずにこれを実行したいと思います。私は多くの方法を試しましたが、Java の経験が浅いため、実装に成功していません。

どんな助けでも大歓迎です。

ありがとう、

ノマド。

4

1 に答える 1

2

FileSystem を使用して、パス内のファイルを反復処理できます。ここにいくつかのサンプルコードがあります

int count = 0;
FileSystem fs = FileSystem.get(getConf());
boolean recursive = false;
RemoteIterator<LocatedFileStatus> ri = fs.listFiles(new Path("hdfs://my/path"), recursive);
while (ri.hasNext()){
    count++;
    ri.next();
}
于 2013-05-02T18:05:57.337 に答える