실무
Hadoop 에코시스템 기반 엔터프라이즈 데이터 플랫폼 구축 및 고도화
Docker Compose로 HDFS HA·Kafka·Flink·Hive·HBase 데이터 플랫폼을 구축하고, 1TB 로그 기준 저장소 성능 비교로 배치(Hive)·실시간(HBase) 역할을 분리했으며, 구간별 관측으로 적재 병목을 규명해 성능을 개선
Overview
Hadoop 생태계 기반 데이터 플랫폼의 구축과 적재 파이프라인 성능 개선을 담당했습니다. ElasticSearch·Hive·HBase를 1TB 로그 데이터 기준으로 비교해 저장소 구성을 정하고, 공공 기상 데이터를 Kafka와 Flink를 거쳐 HDFS에 적재하는 플랫폼을 컨테이너로 구성했습니다.
데이터는 실시간성·배치성 두 갈래로 유입되는데, 적재 성능 지표가 낮게 나오는 원인을 감이 아니라 구간별 측정으로 규명하고, 미들(producer)–큐(Kafka)–저장소(Hive/HBase)를 end-to-end 관점에서 개선했습니다.
System Architecture
Constraints
- 데이터가 실시간성·배치성 두 갈래로 동시에 유입
- 주 저장소 Hive는 배치 대량 적재 특성 — 건by건 처리와 상성이 나쁨
- HBase는 표준 SQL과 문법이 달라 Phoenix 변환 계층을 경유해야 함
- Spark 내부는 외부에서 세부 성능 지표를 측정할 수 없는 블랙박스
- Dataset 정의부에 종속 관계 존재 — 상위 정의가 하위에 우선 반영돼야 함
Tech Stack
- Hadoop Ecosystem (HDFS HA · YARN)
- Docker Compose
- ZooKeeper
- Apache Flink
- Spring Boot
- Apache Tez · PostgreSQL (Hive Metastore)
- Apache Hive
- Apache HBase + Apache Phoenix
- Apache Kafka
- Apache Spark
- JDBC / ANSI SQL
- Jaeger · Prometheus · Grafana
- Datadog
Learnings
- DB 성능만 좋아선 부족하다 — 데이터를 미들(producer)과 큐(Kafka)가 함께 받쳐줘야 제대로 된 시스템이 된다
- 병목은 감이 아니라 구간별 측정으로 잡는다 — 최적화 전에 먼저 어디가 느린지 측정해야 한다
- 안 보이는 구간(Spark 블랙박스)은 도구를 도입해서 뚫는다 — 직접 계측을 구현하는 대신 완성형 SaaS(Datadog)를 택한 것도 그 연장선
- 저장소 특성(Hive = 배치 대량 적재)에 적재 방식을 맞추는 것이 튜닝보다 근본적인 개선일 때가 있다