<aside> 💡 대체 가능 Tool : Impala, Presto, Pig

Impala : Hive가 가지고 있는 실시간성 Query 성능 문제와 멀티 사용자 지원을 해결하기 위해 등장 Presto : 인메모리 기반 데이터 처리, Pig : pigLatin스크립트를 사용하기 위해 따로 공부가 필요함

Hive: 디스크 기반 데이터 처리

Hive는 배치성 대량 데이터 조회 및 분석에 적합하며, Impala는 OLTP성 데이터 조회 및 분석에 적절하므로 용도에 따라 선별적 사용이 필요합니다.

hive가 대량출력을 수반하는 대규모 데이터 처리에 적합하다면, 작은 쿼리를 여러번 실행하는 대화형 데이터 처리에는 presto가 적합하다.

</aside>

<aside> 💡 하둡 에코시스템 중에서 데이터를 모델링하고 프로세싱하는 경우 가장 많이 사용하는 데이터 웨어하우징용 솔루션이다.

</aside>

하이브의 특징

데이터 처리 정리

인메모리 기반 데이터 처리 Spark, Presto- 메모리 관리 이슈가 중요하다. 여러 번 이용하는 데이터는 캐시에 올리거나 디스크에 스왑해 메모리 해제하는 등의 제어가 필요하다.
디스크 기반 데이터 처리 MapReduce, Hive(내부에서 MapReduce 동작하므로)

Hive 구성요소

하이브 실행 순서

  1. 사용자가 제출한 SQL문을 드라이버가 컴파일러에 요청하여 메타스토어의 정보를 이용해 처리에 적합한 형태로 컴파일
  2. 컴파일된 SQL을 실행엔진으로 실행
  3. 리소스 매니저가 클러스터의 자원을 적절히 활용하여 실행