본문 바로가기
빅데이터/hive

[hive] Hive 2의 특징

by hs_seo 2016. 12. 8.

올해 초 하이브 2가 발표 되었는데 그 내용을 정리해 본다. 


* 주요 내용은 LLAP의 적용, 기존 MR 엔진이 deprecated 되고 Tez 엔진이 적용, Spakr 지원 강화가 될 것 같다. 


New Functionality

- HBase metastore (HIVE-9452) – alpha

- 현재 메타스토어 구현은 테이블과 파티션이 늘어나면 느려진다. 

- 실행 계획을 짜는 시간이 더 줄어들게 되면서 더 빨라진다. 


- LLAP(Live Long and Process) (HIVE-7926) – beta

- 새로운 하이브리드 실행모델

- caching of columnar data, JIT-friendly operator pipelines, 

                - and reduced overhead for multiple queries (including concurrent queries), 

                - as well as new performance features like asynchronous I/O, pre-fetching and multi-threaded processing

- 컬럼 데이터 캐싱, JIT 친화적 인 운영 파이프 라인 지원

                - 동시 쿼리를 포함한 여러 쿼리의 오버 헤드 감소뿐만 아니라 비동기 입출력, 사전 인출 및 멀티 스레드 처리를 지원


- HPL/SQL for procedural SQL (HIVE-11055)

- PL/HQL 툴 제공

                - procedural SQL을 구현했다고 한다. 오라클의 PL/SQL과 유사할 듯

                - http://www.hplsql.org/features


- Hive-on-Spark: container prewarm (HIVE-11363)

- 우지에 의해서 하이브 잡이 실행되면 작업간 하이브 세션이 공유되지 않음

- 스파크에서 실행되는 하이브는 executor 공유할 수 있도록 설정


- CLI mode in Beeline for Hive CLI deprecation (HIVE-10516)

- Hive-on-Spark parallel ORDER BY (HIVE-10458)

- 기존에는 소팅을 위해 리듀서를 1로 설정하여 파일을 하나로 해야 했지만 스파크가 병렬 소팅을 지원하도록 개선함


Performance and Optimizations

- Hive-on-Spark: Dynamic partition pruning (HIVE-9152)

- 테즈가 다이나믹 파티션 가지치기를 효율적으로 구현하도록 수정


- Hive-on-Spark: make use of Spark persistence for self union/join (HIVE-10844, HIVE-10550)

- self union/join 처리시 스파크의 RDD에서 데이터를 읽어와서 빠르게 처리할 수 있도록 지원 


- Enable optimized hash tables for Spark (HIVE-11182)

- Hive-on-Spark: vectorized map-join and other join improvements (HIVE-10855, HIVE-10302)

- CBO enhancements (HIVE-10627,HIVE-10686)

- Apache Parquet predicate pushdown (HIVE-11401)


Security

- Secure HiveServer2 web UI (HIVE-12471, HIVE-12485)


Usability, Supportability, and Stability

- Codahale-based metrics (HIVE-10761)

- HiveServer2 web UI (HIVE-12338)

- More stable and usable Hive-on-Spark (HIVE-8858, HIVE-9139, HIVE-10434, HIVE-10476, HIVE-10594, HIVE-10989, and so on)





* 동적 파티션 가지치기 : 파티션 Pruning은 하드파싱이나 실행 시점에 SQL 조건절을 분석하여 읽지 않아도 되는 파티션 세그먼트를 액세스 대상에서 제외 시키는 기능

반응형