2017-09-22 8 views
0

많은 양의 데이터가있는 멀티 테넌트 멀티 노드 클러스터의 많은 디렉토리에있는 파일 수를 계산해야합니다. 그래서 "hdfs dfs-count/path/to/directory"명령이 어디에서 왔는지 궁금합니다. 정보를 얻으시겠습니까? 그것이 hdfs dfs -ls처럼 작동합니까? 아니면 HDFS의 네임 노드에서 정보를 직접 가져 옵니까?hdfs dfs -count는 어디에서 정보를 얻습니까?

고맙습니다.

답변

2

그것은 파일 시스템 API에서 getContentSummary 메서드를 호출

ContentSummary summary = src.fs.getContentSummary(src.path); 
out.println(summary.toString(showQuotas) + src); 

소스 코드 org.apache.hadoop.fs.FsShell.Count

소스 코드에 대한 getContentSummary

+0

감사합니다! 소스 코드에서 ls와 비슷한 동작을 보았습니다 (이것은 디렉토리를 통과하는 루프입니다). – FakirAyoub

+0

네, 왜냐하면'ls'는 파일의 크기를 출력하기 때문입니다. – philantrovert