2013-05-02 3 views
1

저는 Hadoop과 Java에 관해서 처음이에요. 내가 쓰고있는 MapReduce 드라이버에서 HDFS의 폴더에있는 파일 수를 세지려고합니다. 필자는 MapReduce 작업을 실행할 때 사용하는 디렉토리를 전달할 수 있기를 원하기 때문에 HDFS 쉘을 호출하지 않고이 작업을 수행하고 싶습니다. 나는 여러 가지 방법을 시도했지만 Java에 익숙하지 않아 구현에 성공하지 못했습니다.MR 작업에서 HDFS의 파일 수를 어떻게 계산합니까?

도움을 주시면 감사하겠습니다.

감사합니다.

유목민.

+0

이미 시도한 내용에 대한 간단한 설명을 추가하십시오. –

답변

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(); 
} 
관련 문제