Hive 자바 가상 머신 재사용
Hive 자바 가상 머신 재사용
· Version : Hive
하둡에서 맵리듀스 태스크를 실행하면 기본적으로 자바 가상 머신이 실행되고 그 위에서 맵 또는 리듀서 태스크를 실행한다. 하둡의 기본 설정은 일반적으로 포크(forked)된 자바 가상 머신을 사용한다. 자바 가상 머신은 가동할 때 오버헤드가 있기 때문에, 가상 머신의 재사용은 하이브 성능과 매우 밀접한 관계가 있다. 특히 작은 파일을 처리해야하는 경우나 태스크 수행시간이 짧은 작업의 경우 자바 가상 머신을 재사용하면 매우 효율이 좋다. 만약 수십, 수백번의 태스크를 가진 잡을 수행할때 자바 가상 머신 인스턴스를 재사용한다면 동일한 잡에 N번 재사용된다. 가상 머신의 재사용 설정은 하둡의 mapred-site.xml에서 설정할 수 있다.
mapred.job.reuse.jvm.num.tasks= 10 자바 가상 머신 하나당 몇 번의 태스크를 수행할지 설정 -1로 설정할 경우 제한이 없음. |
자바 가상 머신을 재사용할 경우, 잡을 실행할때마다 가상 머신이 새로 가동되는 오버헤드를 줄일 수 있지만, 예약된 태스크 슬롯을 잡이 완료할 때까지 점유하고 있는 단점이 있다. 예를들어 잡이 병렬로 실행될때, 먼저 끝난 가상 머신은 유휴 상태로 대기하게 되고 마지막 작업이 완료되기 전까지다른 잡이 사용하지 못하는 상태가 된다. 물론 다른 잡은 다른 자바 가상 머신을 생성해서 사용하지만, 이러한 불균형이 지속적으로 발생한다면 리소스 병목이 발생할 수 있다.
2020-10-14 / Sungwook Kang / http://sungwookkang.com
Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, Hive, Hive tunning, 하이브 튜닝, MapReduce최적화, Map태스크, Reduce 태스크, 하이브 최적화, 자바 가상 머신, JVM