Hive 투기적 실행(Speculative execution)
Hive 투기적 실행(Speculative execution)
· Version : Hive
Hive에서 투기적 실행(Speculative execution)이라 불리는 기능은 하나의 잡을 중복된 태스크로 구성하여 동시에 수행 시키는 하둡의 기능이다. 같은 데이터를 중복하여 복사하기 때문에 더 많은 리소스를 사용하며, 대부분의 데이터는 버려진다. 이 기능의 목적은 느리게 동직하는 태스크 트래커를 제거함으로써 개별 태스크의 결과가 더 빨리 도출되고 결과적으로 전체 잡 수행을 향상시키는데 있다.
즉, 동일한 태스크를 여러노드에서 실행함으로써, 특정 노드가 느리더라도 (장비 노후 또는 기타 문제로) 다른 노드에서 먼저 끝나면 해당 결과를 사용하고 나머지 노드는 중지 시킨다. 그래서 전체적으로는 수행시간이 단축된다.
Speculative execution 기능 활성화는 mapred-site.xml에서 아래 속성을 true로 설정한다.
mapreduce.map.speculative mapreduce.reduce.speculative |
Speculative execution 기능은 실시간성이 중요한 잡의 경우 활성화 하여 사용하는 것이 전체적인 응답시간 향상에 이득이 있다. 하지만 큰 입력 데이터 때문에 오래 걸리는 맵 또는 리듀스 태스크에는 높은 오버헤드로 인해서 사용하지 않는것을 추천한다.
[참고자료]
· https://community.cloudera.com/t5/Support-Questions/what-is-speculative-execution/td-p/241741
· https://www.slideshare.net/Hadoop_Summit/t-325p210-cnoguchi
2020-10-19 / Sungwook Kang / http://sungwookkang.com
Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, Hive, Hive tunning, 하이브 튜닝, MapReduce최적화, Map태스크, Reduce 태스크, 하이브 최적화, 투기적 실행, mapreduce.map.speculative, mapreduce.reduce.speculative, Speculative Execution