지구정복

[Hive] Hive 개념 및 구성요소, 아키텍처 본문

데이터 엔지니어링 정복/Hive

[Hive] Hive 개념 및 구성요소, 아키텍처

eeaarrtthh 2021. 5. 10. 11:05
728x90
반응형
SMALL

공식사이트 : hive.apache.org/

 

1. 개념

더보기

하둡 초창기에는 적재된 데이터를 탐색/분석하기 위해 맵리듀스를 주로 이용했지만 이는 복잡한 프로그래밍 기법이 필요했고, 이는 업무 분석가 및 관리자들에게 빅데이터에 접근하는 것을 어렵게 했다. 이를위해 페이스북에서 SQL과 매우 유사한 방식으로 하둡 데이터에 접근성을 높인 하이브를 개발했다. 

 

*참고

하이브 External / Managed

하이브의 데이터 아키텍처는 External 영역과 Managed 영역으로 구분된다.

스키마에 대한 제약조건이 없는 영역이 External영역이고 보통 Data Lake 영역이다.

Managed는 스키마에 대한 제약조건이 있고 Data Warehouse 영역이다.

External영역에서 데이터 스키마에 대한 제약조건을 만들어서 정형화한 데이터를 Managed영역에 넘겨서 Data Warehouse나 Data Mart를 만든다

 

피그란?

하이브와 유사한 목적으로 맵리듀스의 복잡성을 해결하기 위해 제작.

피그는 SQL대신 피그 라틴(Pig Latin)이라는 언어를 제공해서 하이브보다는 절차적인 요소가 많이 사용된다.

하이브가 테이블을 기반으로 한 데이터 가공, 적재, 탐색 등에 최적화됐다면 피그는 HDFS 파일에 직접 접근해 다양한 데이터 처리 함수와 제어문으로 복잡한 데이터 파이프라인을 처리하는 데 적합하다.

하이브는 대화형 SQL이고 피그는 변수를 선언하고 조건, 반복문을 사용해서 복잡한 처리를 가능하게 한다.


2. 구성요소

더보기

 

-CLI : 사용자가 하이브 쿼리를 입력하고 실행할 수 있는 인터페이스(하이브 Server1 기반 CLI와 하이브 Server2 기반의 Beeline이 있다. 주로 Beeline을 사용한다.)

 

-JDBC/ODBC Driver : 하이브의 쿼리를 다양한 데이터베이스와 연갈하기 위한 드라이버를 제공

 

-Query Engine : 사용자가 입력한 하이브 쿼리를 분석해 실행 계획을 수립하고 하이브 QL(Query Language)을 맵리듀스 코드로 변환 및 실행. 이게 핵심이다. 사용자가 하이브쿼리를 입력하면 이를 맵리듀스 코드로 변환시켜서 실행한다. 그리고 맵리듀스에서 하이브 쿼리의 결과를 돌려준다.

 

-MetaStore : 하이브에서 사용하는 테이블의 스키마 정보를 저장 및 관리하며, 기본적으로 더비 DB(Derby DB)가 사용되나 다른 DBMS(MySQL, PostgreSQL 등)로 변경가능

 


3. 아키텍처

 

 

 

출처: 실무로 배우는 빅데이터 기술 - 위키북스

728x90
반응형
LIST
Comments