2016년 11월 25일 금요일

sorting big file and searching without index

용량이 큰 텍스트 파일을 소팅하고 인덱스 없이 특정 키를 찾는 것을 해봤다. 결과는 꽤 괜찮아서 쓸만했다.  내가 해본 것은 수십기가 파일이었는데 그보다 더 큰 파일도 잘 될것 같다. 방법은 다음과 같다.
1. 하둡으로 큰 파일을 소팅한다.
2. sgrep으로 검색. binary search이므로 매우 빠르다.

소팅은 몇십, 몇백기가라도 하둡으로 하면 1분 정도 내에 할 수 있다. 싱글 머신에서 sort 명령으로 시도하면 훨씬 오래 걸린다. 메모리가 충분하지 못하면 디스크 스왑이 많아지므로 더 오래 걸린다. 하둡으로 소팅할 때 파티셔너를 직접 만들어줘야 한다. 키 값에 따라 리듀서가 구분되도록 하는 것이다.

sgrep은 매우 빨라서 수십기가 파일에서도 0.001초 내에 금방 검색 가능하다.

자세한 내용은 나중에 더 정리해봐야겠다.

댓글 1개: