
하둡 에코시스템 중 데이터를 모델링하고 프로세싱할때 가장 많이 사용하는 데이터 웨어하우징 솔루션
RDB의 테이블과 유사한 형태로 HDFS에 저장된 데이터 구조를 정의하는 방법을 제공하고, 이 데이터를 대상으로 SQL과 유사한 HiveQL을 이용해 데이터를 조회할 수 있도록 한다.
위 그림에서 가장 핵심은 MetaStore임.
HDFS가 갖고 있는 데이터에 논리적 구조를 도입시켜주는게 MetaStore이다.
HDFS 파일에 "이게 어떤 데이터인지" 설명을 붙여주는 중앙 메타데이터 저장소
HDFS는 파일시스템이다. 그냥 바이트 덩어리를 저장할 뿐이고, 그 안에 뭐가 들어있는지는 관심없음.
HDFS 입장:
/warehouse/users/part-0000.parquet
→ "그냥 파일임. 안에 뭐가 있는지 모름"
사람 입장:
→ "이게 users 테이블이고, user_id, name, email 컬럼이 있어"
이 간극을 메워주는 것이 Metastore임.
데이터베이스 정보
└── 테이블 정보
├── 컬럼명 / 타입 / 코멘트
├── 파티션 정보
├── 저장 포맷 (Parquet, ORC, CSV...)
├── HDFS 실제 경로 (Location)
├── SerDe (직렬화/역직렬화 클래스)
└── 테이블 속성 (생성일, 소유자 등)
구체적인 예:
테이블: logs
├── 컬럼
│ ├── user_id: BIGINT
│ ├── action: STRING
│ └── ts: TIMESTAMP
├── 파티션 키: date (STRING)
├── 포맷: PARQUET
├── Location: hdfs://namenode/warehouse/logs
└── 파티션 목록
├── date=2024-01-01 → /warehouse/logs/date=2024-01-01
├── date=2024-01-02 → /warehouse/logs/date=2024-01-02
└── ...