오늘 할 일: 갈고 닦기
article thumbnail

하이브(Hive)란 무엇인가

하둡 기반의 데이터 웨어하우스(DW, Data Warehouse) 솔루션으로 데이터 요약, 질의 및 분석 기능을 제공합니다. 하이브를 이용하면 HDFS(Hadoop Distributed File System)에 저장된 데이터에 SQL과 유사한 HiveQL이라는 쿼리를 날려 접근할 수 있습니다. 하이브는 맵리듀스(MapReduce)의 모든 기능을 지원하여 직접 맵리듀스를 작성하는 것보다 쉽게 구현할 수 있고, 쿼리를 빠르게 하는 비트맵 인덱스도 제공하고 있습니다. HDFS에 저장된 데이터를 수정할 수는 없지만 SQL에 익숙한 분석가들이 정형화된 대용량 데이터를 다루기에 유용한 솔루션이라고 합니다. 한마디로 대용량 정형화 데이터를 질의하고 그 결과를 생성하는 쿼리 엔진, "하둡의 SQL"이라고 할 수 있습니다.

하이브 로고. 벌치고는 코끼리스럽다.

 

+ 하둡(Hadoop)

대용량 데이터를 저장하고 분산처리하는 오픈소스 프레임워크입니다. 하나의 성능 좋은 컴퓨터를 이용하여 데이터를 처리하는 대신, 적당한 성능의 범용 컴퓨터 여러 대를 클러스터화하고, 큰 크기의 데이터를 클러스터에서 병렬로 동시에 처리하여 처리 속도를 높일 수 있습니다.

 

+ 맵리듀스(MapReduce)

구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작한 소프트웨어 프레임워크입니다. 대용량 데이터가 들어오면 적당한 크기의 블록으로 분할하고, 각 블록에 대해 Map Task와 Reduce Task를 진행합니다. 자세한 내용은 맵리듀스에 대한 좋은 포스팅이 있으니 참고 바랍니다.

 

하이브의 구성요소

하이브는 아래 구성요소들을 통해 쿼리를 구현합니다.

1. UI

  • 분석가가 쿼리나 기타 작업들을 시스템에 제출하는 인터페이스

2. Driver

  • 쿼리를 입력받고 작업을 처리하는 기능을 수행

3. Compiler

  • Metastore를 참고하여 쿼리 구문을 분석하고 실행계획을 생성

4. Metastore

  • 하이브에서 사용하는 데이터베이스의 메타 정보들과 HDFS 매핑 정보를 저장

5. Execution Engine

  • Compiler에 의해 생성된 실행계획을 맵리듀스를 통해 구현하는 엔진

출처: https://wikidocs.net/23282 (7번과 9번이 바뀐 것 같습니다..)

하이브 실행순서

  1. 사용자가 커맨드라인을 통해 데이터베이스로 쿼리를 날립니다
  2. 드라이버가 컴파일러에게 쿼리플랜을 요청합니다
  3. 컴파일러는 메타스토어에서 쿼리를 작성하는 데에 필요한 메타정보를 받습니다
  4. 컴파일러가 메타정보를 바탕으로 쿼리를 어떻게 처리할 것인지를 쿼리플랜에 작성하고 드라이버에게 넘깁니다
  5. 드라이버는 Execution Engine에게 쿼리플랜을 전달합니다
  6. 쿼리플랜을 바탕으로 쿼리가 내부적으로 맵리듀스로 변환되어 작업을 수행합니다
  7. Execution Engine이 맵리듀스 처리결과를 데이터 노드로부터 받고, 드라이버에게 이를 전달합니다.
  8. 드라이버는 사용자에게 결과를 전달합니다.

 

이상으로 하이브가 무엇인지, 어떻게 쿼리를 처리하는지 간단하게 알아보았습니다. 데이터 분석가로서 빅데이터 엔지니어링에 대한 이해 역시 필요하다는 생각에 (조금) 공부해본 내용을 기술했습니다. 저한테는 아직 어려운 개념들이라ㅎㅎ 잘못된 내용은 슬쩍 알려주시고, 궁금하신 점이 있으신 분들은 직접 서치해보시길 추천합니다. 읽어주셔서 감사합니다.🤓

 

참고

위키백과: 아파치 하이브

 

아파치 하이브 - 위키백과, 우리 모두의 백과사전

아파치 하이브 위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

빅데이커 - 하둡, 하이브로 시작하기

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kbh3983&logNo=220971216326 

 

[Hive] 하이브 개념 / 하이브 동작 순서

Hive ? Pig ?빅데이타를 처리하기 위해서는 여러가지 개념이 필요하다. 하둡, HDFS, Sqoop, Pi, H...

blog.naver.com

하이브 튜토리얼