Tricore 최초 게시: 2017년 7월 11일
Apache™ Hadoop®에 관한 두 부분으로 구성된 이 시리즈의 1부에서는 하둡 에코시스템과 하둡 프레임워크를 소개했습니다. 2부인 이번 글에서는 질의(Querying), 외부 통합, 데이터 교환, 조율(Coordination), 관리를 담당하는 하둡 프레임워크의 핵심 구성 요소를 더 자세히 살펴봅니다. 아울러 하둡 클러스터를 모니터링하는 모듈까지 함께 소개합니다.
질의(Querying)
시리즈 1부에서는 스크립팅 도구인 Apache Pig™를 소개했습니다. Pig Latin으로 작성된 Pig 코드는 실행 가능한 MapReduce 작업으로 변환되며, Pig가 제공하는 다양한 장점은 1부에서 확인할 수 있습니다.
하지만 여전히 SQL을 선호하는 개발자들도 많습니다. 익숙한 방식을 그대로 활용하고 싶다면 SQL을 하둡과 함께 사용할 수 있습니다.
Hive
Apache Hive™는 방대한 양의 데이터를 관리하고 체계화하는 분산 데이터 웨어하우스입니다. 이 웨어하우스는 HDFS(하둡 분산 파일 시스템) 위에 구축됩니다. Hive의 질의 언어인 HiveQL은 SQL 의미론을 기반으로 하며, 런타임 엔진이 HiveQL을 데이터를 조회하는 MapReduce 작업으로 변환합니다.
Hive가 제공하는 주요 기능은 다음과 같습니다.
- 대량의 원시 데이터(raw data)를 저장할 수 있는 스키마 기반 데이터 저장소
- HDFS에 저장된 원시 데이터에 대한 분석 및 질의를 수행할 수 있는 SQL 유사 환경
- 외부 RDBMS(관계형 데이터베이스 관리 시스템) 애플리케이션과의 통합
다음 이미지는 하둡 에코시스템의 아키텍처를 시각적으로 보여줍니다.

하둡 에코시스템 아키텍처
외부 통합
Apache Flume™는 대량의 로그 데이터를 효율적으로 수집·집계하여 HDFS로 전송하는 분산형 고가용성 서비스입니다. Flume은 장애 허용(fault tolerance)과 페일오버 복구(failover recovery)에 대비한 스트리밍 데이터 흐름 아키텍처를 사용해 대량의 이벤트 데이터를 안정적으로 전송합니다.
Flume이 제공하는 주요 기능은 다음과 같습니다.
- 네트워크 트래픽, 로그, 이메일 메시지 등 대량의 이벤트 데이터 전송
- 여러 소스에서 들어오는 데이터를 HDFS로 스트리밍
- 하둡 애플리케이션으로의 안정적인 실시간 데이터 스트리밍 보장
데이터 교환
Apache Sqoop™는 하둡과 관계형 데이터베이스, 엔터프라이즈 데이터 웨어하우스 같은 외부 데이터 저장소 간에 대량 데이터를 효율적으로 전송하기 위해 설계된 도구입니다. Sqoop은 Teradata Database, IBM® Netezza, Oracle® Database, MySQL™, PostgreSQL® 등 다양한 관계형 데이터베이스와 연동되며, 빅데이터를 수집하거나 분석하는 대부분의 기업에서 폭넓게 활용되고 있습니다.
Sqoop이 제공하는 주요 기능은 다음과 같습니다.
- 사용하는 데이터베이스에 따라 가져올(import) 데이터의 스키마 정의 과정을 대부분 자동화
- MapReduce 프레임워크를 활용한 데이터 임포트/익스포트로 병렬 처리 메커니즘과 장애 허용성 제공
- 주요 RDBMS 전반에 대한 커넥터 제공
- 전체(full) 및 증분(incremental) 로드, 데이터의 병렬 임포트/익스포트, 데이터 압축 지원
- Kerberos 보안 통합 지원
조율(Coordination)
Apache Zookeeper™는 분산 애플리케이션을 위한 조율 서비스로, 클러스터 전반의 동기화를 가능하게 합니다. 분산 애플리케이션이 데이터를 저장하고 조회할 수 있는 중앙 집중식 저장소를 제공합니다.
Zookeeper는 클러스터 내 작업(job)을 관리하는 데 사용되는 하둡 관리 도구입니다. 한 노드의 데이터 변경 사항이 다른 노드들에 전달되기 때문에 일부 개발자들은 이 도구를 '감시자(watch guard)'라고 부르기도 합니다.
하둡 클러스터 프로비저닝, 관리 및 모니터링
Apache Ambari™는 하둡 클러스터의 프로비저닝(provisioning), 관리, 모니터링을 지원하는 웹 기반 도구입니다. 도구 설치와 관리, 구성, 모니터링 작업을 수행할 수 있도록 매우 단순하면서도 뛰어난 상호작용성을 갖춘 사용자 인터페이스를 제공합니다. Ambari는 히트맵(heat map)과 같은 클러스터 상태 정보를 한눈에 확인할 수 있는 대시보드를 제공하며, MapReduce, Pig, Hive 애플리케이션의 성능 특성을 손쉽게 진단할 수 있도록 관련 기능과 함께 화면에 표시해 줍니다.
Ambari가 추가로 제공하는 기능은 다음과 같습니다.
- 마스터 서비스와 노드 간 매핑
- 설치할 서비스 직접 선택
- 간편한 커스텀 스택(custom stack) 선택
- 더 깔끔한 인터페이스
- 설치, 모니터링, 관리 프로세스 간소화
결론
하둡은 막대한 양의 데이터를 저장하고 분석하려는 기업에 매우 효과적인 솔루션입니다. 분산 시스템 환경에서 데이터 관리 도구로 큰 인기를 얻고 있으며, 오픈소스이기 때문에 기업이 비용 부담 없이 자유롭게 활용할 수 있다는 점도 큰 강점입니다. 하둡에 대해 더 알아보고 싶다면 Apache Software Foundation 웹사이트의 공식 문서를 참고하세요.
하둡을 사용해 보신 경험이 있으신가요? 피드백 탭을 통해 의견을 남기거나 궁금한 점을 질문해 주세요.