키워드

관계형 데이터 저장소, Hive, MYSQL, OLAP vs OLTP, 읽기스키마, 내부테이블 외부 테이블 (성능차이궁금), 파티셔닝

목차

  1. Hive를 이용하면, hadoop 클러스터를 관계형데이터베이스처럼 이용할 수 있다.
  2. mysql 데이터베이스를 hadoop 클러스터에 통합할 방법이 있다.

36. Hive

Untitled

하이브(Hive)는 벌집, 벌떼, 중심지라는 의미이다. 의미가 확장되어 벌레둥지를 의미하는 단어로 사용되는 경우도 있다.

https://ko.wikipedia.org/wiki/아파치_하이브 아파치 하이브(Apache Hive)는 하둡에서 동작하는 데이터 웨어하우스(Data Warehouse) 인프라 구조로서 데이터 요약, 질의 및 분석 기능을 제공한다.[3] 초기에는 페이스북에서 개발되었지만 넷플릭스등과 같은 회사에서 사용되고 있으며 개발되고 있다.[4][5] 아파치 하이브는 아파치 HDFS이나 아파치 HBase와 같은 데이터 저장 시스템에 저장되어 있는 대용량 데이터 집합들을 분석한다. HiveQL 이라고 불리는 SQL같은 언어를 제공하며 맵리듀스의 모든 기능을 지원한다. 쿼리를 빠르게 하기 위해 비트맵 인덱스를 포함하여 인덱스 기능을 제공한다.[6] 기본적으로 하이브는 메타데이터를 내장된 아파치 더비(Derby) 데이터 베이스안에 저장한다. 그렇지만 MySQL과 같은 다른 서버/클라이언트 데이터베이스를 사용할 수 있는 선택권을 제공한다.[7] 현재 TEXTFILE, SEQUENCEFILE, ORC 그리고 RCFILE등 4개의 파일 포맷을 지원한다

  1. SQL 을 이용해 hadoop 클러스터에 걸쳐이쓴 데이터를 쿼리하는 간단하고 강력한 도구이다. (=sql 에 “익숙한" 사용자들에게 효과적)

작동방식

  1. mysql 처럼 hdfs 클러스터 전체에 걸쳐 저장된 데이터에 표준 sql 쿼리를 실행합니다.

  2. 이는 SQL 을 MapReduce나 Tez 명령어로 번역해서 동작하고, 이 둘은 YARN 클러스터 관리자 위에서 실행됩니다.

  3. Hive Server 2는 사용자와 애플리케이션에서 보내는 요청을 수락한 다음, 실행 계획을 생성하고 SQL 쿼리를 처리하기 위한 YARN 작업을 자동 생성합니다. 이 YARN 작업은 MapReduce, Tez나 Spark 워크로드로 생성할 수 있습니다.

  4. 그런 다음, 이 작업은 하둡에서 분산형 애플리케이션으로 작동합니다. SQL 쿼리가 처리되고 나면 그 결과는 최종 사용자나 애플리케이션에 반환되거나, HDFS로 전송됩니다.

  5. 그러면 Hive Metastore가 Postgres, MySQL과 같은 관계형 데이터베이스를 활용하여 이 메타데이터를 유지하고 Hive Server 2가 쿼리 계획에서 테이블 구조를 가져옵니다. 경우에 따라서 애플리케이션이 기본 처리 과정에서 메타스토어를 검색할 수도 있습니다.