일단 내가 아는 방법
hadoop fs -cat <input_path> | wc -l
이렇게 세면 한참 걸린다...
그래서 찾아본 방법
1. MR로 라인 수 계산하고,
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar -Dmapred.reduce.tasks=100 -input <input_path> -output <output_path> -mapper /bin/cat -reducer "wc -l"
이렇게 하면 MR을 사용해서 라인을 계산하게 된다.
이렇게 계산된 파일은 local로 다시 받아와서, awk를 이용해서 계산하면 된다.
2. hdfs 상에 계산된 파일을 local로 복사
hadoop fs -getmerge <output_path> <local_output_file>
3. awk 이용해서 최종 결과 출력
awk '{s += $1}END { print s }' <local_output_file>
참고: http://stackoverflow.com/questions/12716570/count-how-many-lines-in-large-files
'Computer > Etc' 카테고리의 다른 글
pig 실행시 오류 (0) | 2015.05.26 |
---|---|
jquery 이용해서 키보드 입력시 input에 포커스 설정 및 블록 선택하기 (0) | 2015.05.14 |
git tag (0) | 2015.03.31 |
git color 설정하기 (0) | 2015.03.31 |
kadane's algorithm(maximum contiguous subarray) (0) | 2015.03.21 |