실무
Hadoop 에코시스템 기반 엔터프라이즈 데이터 플랫폼 고도화
실시간·배치 데이터를 건by건 single-statement JDBC로 적재하던 구조의 병목을 구간별 관측(Jaeger·Prometheus·Grafana, 이후 Datadog)으로 측정해, 적재 방식과 Kafka broker 구성을 바로잡고 Spark 블랙박스 구간까지 end-to-end로 가시화한 데이터 플랫폼 적재 성능 개선
Overview
Hadoop 생태계 기반 엔터프라이즈 데이터 플랫폼의 적재 파이프라인 성능 분석·개선을 담당했습니다. 데이터는 실시간성·배치성 두 갈래로 유입되는데, 적재 성능 지표가 낮게 나오는 원인을 감이 아니라 구간별 측정으로 규명하고, 미들(producer)–큐(Kafka)–저장소(Hive/HBase)를 end-to-end 관점에서 개선했습니다.
Constraints
- 데이터가 실시간성·배치성 두 갈래로 동시에 유입
- 주 저장소 Hive는 배치 대량 적재 특성 — 건by건 처리와 상성이 나쁨
- HBase는 표준 SQL과 문법이 달라 Phoenix 변환 계층을 경유해야 함
- Spark 내부는 외부에서 세부 성능 지표를 측정할 수 없는 블랙박스
- Dataset 정의부에 종속 관계 존재 — 상위 정의가 하위에 우선 반영돼야 함
Tech Stack
- Hadoop Ecosystem
- 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 = 배치 대량 적재)에 적재 방식을 맞추는 것이 튜닝보다 근본적인 개선일 때가 있다