hadoop 0.21 append 성능 테스트
- Posted at 2010/09/27 12:34
- Filed under project/lucene_hadoop
hadoop이 지난달 0.21로 업그레이드 되면 append 기능이 추가되었습니다.
append에 대해 성능 테스트를 수행해 보았는데 결과 공유합니다.
테스트를 수행한 환경이 VM환경이라 절대적인 성능 수치 보다는 일반 write와 속도 비교가 더 의미 있을 겁니다. 그리고 부하 상황이 아닌 싱글 클라이언트 상황에서의 테스트입니다.
1. 테스트 환경
. 물리적 서버 3대, 각 서버에 VM5대
. Hadoop 1 master, 23 datanode
. Hadoop 버전: 0.21
2. 테스트 프로그램
. 1024 bytes를 102,400번 수행 -> 100MB
. 별첨 참고
3. 테스트 결과
. write(BufferedOutputStream 사용시): 17,654 ms
. write(DFSOutputStream 사용시): 12,298 ms
. append(DFSOutputStream 사용시, 매번 flush 호출): 130,436 ms
. append(DFSOutputStream 사용시, 마지막에 flush 호출): 11,398 ms
. append(DFSOutputStream 사용시, 1000건 단위로 flush 호출): 16,225 ms
4. 결론
. append의 경우 flush()를 호출하지 않으면 기존 write의 동일한 성능
. append 연산을 사용하는 용도가 주로 로그 데이터 저장 등인데 이 경우 매번 flush 해주는 경우가 일반적
-> 이런 상황에서는 10배 정도의 성능 저하 발생
. append 도중 close를 하지 않은 상태에서 클라이언트가 강제 종료되면 일전 시간(수 분) 내에서는
파일 읽기 연산 불가
. append 사용 가능 상황
-> 쓰기 시간이 중요하지 않고 중요한 데이터
-> 쓰기 시간이 중요하지만 일부 데이터(1000건 정도) 유실이 발생해도 무방한 데이터
append에 대해 성능 테스트를 수행해 보았는데 결과 공유합니다.
테스트를 수행한 환경이 VM환경이라 절대적인 성능 수치 보다는 일반 write와 속도 비교가 더 의미 있을 겁니다. 그리고 부하 상황이 아닌 싱글 클라이언트 상황에서의 테스트입니다.
1. 테스트 환경
. 물리적 서버 3대, 각 서버에 VM5대
. Hadoop 1 master, 23 datanode
. Hadoop 버전: 0.21
2. 테스트 프로그램
. 1024 bytes를 102,400번 수행 -> 100MB
. 별첨 참고
3. 테스트 결과
. write(BufferedOutputStream 사용시): 17,654 ms
. write(DFSOutputStream 사용시): 12,298 ms
. append(DFSOutputStream 사용시, 매번 flush 호출): 130,436 ms
. append(DFSOutputStream 사용시, 마지막에 flush 호출): 11,398 ms
. append(DFSOutputStream 사용시, 1000건 단위로 flush 호출): 16,225 ms
4. 결론
. append의 경우 flush()를 호출하지 않으면 기존 write의 동일한 성능
. append 연산을 사용하는 용도가 주로 로그 데이터 저장 등인데 이 경우 매번 flush 해주는 경우가 일반적
-> 이런 상황에서는 10배 정도의 성능 저하 발생
. append 도중 close를 하지 않은 상태에서 클라이언트가 강제 종료되면 일전 시간(수 분) 내에서는
파일 읽기 연산 불가
. append 사용 가능 상황
-> 쓰기 시간이 중요하지 않고 중요한 데이터
-> 쓰기 시간이 중요하지만 일부 데이터(1000건 정도) 유실이 발생해도 무방한 데이터
Posted by 김형준
- Response
- No Trackback , 2 Comments
AppendTest.java





