Computer/Etc
hdfs 파일 라인 수 계산하기
hexists
2015. 5. 6. 18:26
일단 내가 아는 방법
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