Hadoop in Action
1. combiner를 가지고 네트워크 트래픽 줄이기
2. 입력 데이터 양을 줄이기
3. 압축 사용하기
4. JVM 재사용
디폴트로, TaskTracker는 Mapper와 Reducer를 분리된 JVM 으로 수행한다.
태스크 시작 비용이 상당히 클 수 있으며
이를 해결하기 위해서 job.reuse.jvm.num.tasks 1보다 큰값 또는 -1 (no limit)
5. speculative execution 을 가지고 실행하기.
map 또는 reduce task가 실행중 오류가 발생한 경우 또는 너무 느린 경우 새로운 태스크를 수행하고 기존 태스크를 kill한다.
기본 설정이 이렇게 동작하도록 되어 있으며 이를 수정하기 위해서 다음 속성들을 FALSE로 지정한다.
mapred.map.tasks.speculative.execution
mapfred.reduce.tasks.speculative.execution
6. 코드 리펙토링과 알고리즘 다시쓰기