하둡 완벽 가이드 12장 하이브 // HBASE, 주키퍼

12장 하이브
하둡 기반의 데이터 웨어하우징 프레임워크이다.
대용량의 데이터를 관리하고 학습하기 위해 사용되었다.
대용량의 데이터를 HDFS에 저장하고 HiveQL을 이용해서 데이터를 분석할 수 있다.
사용자가 HiveQL을 작성한 후 실행하면 하이브는 해당 쿼리를 맵리듀스의 잡으로 변환하여 하둡 클러스터에서 구동시킨다.
HDFS에 저장된 데이터와 테이블 스키가 사이에서 하이브가 매개체 역할을 한다.
테이블 스키마와 같은 메타데이터는 메타스토어에 저장된다.

RDBMS는 데이터를 적재하는 시점에 테이블의 스키마를 검증하는 반면 하이브는 쿼리가 발생할 때 데이터를 검증한다.

기본형과 복합형 데이터 타입 모두를 지원한다.
기본형: 숫자형, 불린, 문자형 등
복합형: 배열, 맵, 구조체 등

하이브 테이블은 데이터와 메타데이터로 구성되는데 데이터는 일반적으로 HDFS에 저장하고 메타데이터는 RDBMS에 저장한다.

데이터 정렬은 order by를 쓸 수 있지만 전체 정렬을 하려면 리듀서 개수가 하나여야 해서 성능이 좋지 않다.
부분 정렬로 충분하다면 sort by를 사용할 수 있다.

하이브는 맵리듀스에 비해 일반적으로 사용되는 연산을 매우 간단히 수행할 수 있다.
조인 연산 같은 경우 맵리듀스로 구현하는 것이 복잡하다.

내부조인: 두 테이블 중 모든 값이 다 맞춰지는 데이터들을 합쳐주는 것. null이 없을 것.
외부조인: 한 쪽, 혹은 양 쪽의 로우가 다 나오도록 합쳐주는 것. 빈 곳은 null로 표현.


HBase


주키퍼
하둡의 분산 상호조정 서비스.
파일을 보내고 네트워크가 끊기면 수신자가 데이터를 받았는지 조차도 알 수 없게 되는데 이것을 부분적 실패 partial failure라고 한다.
이러한 부분적 실패를 안전하게 다루면서 분산 응용 프로그램을 구축할 수 있도록 도와주는 툴을 제공한다.
주키퍼의 특성: 단순함, 다양성, 고가용성, 느슨함, 라이브러리











댓글

이 블로그의 인기 게시물

논문 정리 - MapReduce: Simplified Data Processing on Large Clusters

논문 정리 - The Google File System

kazoo: Using zookeeper api with python