빅데이터 플랫폼 하둡 구성요소 및 하둡 에코시스템 (2)

빅데이터 플랫폼 하둡은 HDFS와 맵리듀스 모듈로 구성된 오픈소스 프레임워크로, 여기에 다양한 분석 도구를 추가로 통합하여 하둡 에코시스템을 구성합니다. 이 문서에서는 주요 하둡 에코시스템의 프레임워크별 특징을 살펴보겠습니다.

빅데이터 플랫폼 하둡

하둡 구성요소

하둡은 대용량 데이터 처리(MapReduce) 및 분산 데이터저장 시스템으로(HDFS) 구성되며, 아파치 루씬의 서브 프로젝트로 개발된 오픈소스 플랫폼 입니다.

하둡 구성요소 블럭도

위의 하둡 플랫폼에서 녹색으로 표시된 부분이 Core System으로 분산 데이터저장 및 처리를 담당하는 Framework입니다.

MapReduce (맵리듀스)

하둡 초기버전에서 대용량 데이터 세트를 처리하거나 생성하는 기능을 담당한 모듈로써 이후 스파크와 같이 보다 범용적이고 처리가 효율적인 모듈로 대체하여 사용되고 있습니다.

맵리듀스와 이외의 처리방식 (스파크 등)

위의 그림과 같이 하둡 ver.2 에서는 스파크 등으로 대체가 가능합니다. 이는 인메모리 기반의 스트리밍 처리 등을 통해 맵리듀스에 비해 보다 범용적이고 빠른 데이터 처리 속도의 장점을 가집니다.

HDFS

수백 수천 노드를 갖는 클러스터 분산 시스템에서 테라~페타 바이트 대용량 데이터 집합을 처리할 수 있는 응용프로그램입니다.

하둡 에코시스템 아키텍처

맵리듀스와 HDFS 같은 Core 모듈 외에 보완적인 서비스를 제공하거나 비즈니스에 활용가능한 서브 프로젝트들로 구성된 집합입니다.

하둡 에코시스템 아키텍처 구성도

위와 같이 하둡 에코 시스템은 관리 모니터링 툴, NoSQL 데이터베이스, 데이터 처리, 데이터 수집도구 등으로 구성됩니다.

NoSQL 데이터베이스

텍스트, 멀티미디어 데이터와 같은 비정형 데이터의 관리는 NoSQL DB를 사용하는 것이 효과적입니다. NoSQL DB 종류는 카산드라, HBASE, 몽고DB가 있으며, 각 데이터베이스의 특징과 장단점은 다음과 같습니다.

종류특징 및 장단점
카산드라페이스북에 의해 개발되어 공개된 JAVA기반의 오픈소스 DB 입니다.  트위터에서 기존 사용되던 MySQL을 Cassandra 기반으로 전환한 것으로도 알려져있습니다.
트위터와 같은 대량 write 트랜잭션 기반에 효율이 좋지만, 다만 복잡한 검색이나 검색이 어려우며, 데이터 갱신시 배타적인 처리가 어렵다는 것이 단점으로 지적되기도 합니다.
HBase하둡의 하위 프로젝트로 개발되어 대량의 데이터 분석 처리에 효과적인 분산 DB 입니다. 특히 하둡의 MapReduce와 유기적으로 결합되어 처리시 상호 운영성이 좋습니다.
하지만, 대규모 데이터 처리 전용이라는 한계와 성능이 상대적으로 빠르지 않다는 것은 단점입니다.
MongoDB
(무료 체험판 다운로드)
mongo라는 말 자체가 ‘매우 큰’이라는 뜻으로 역시 대량의 데이터 처리에 적합합니다. 
속도가 매우 빠른 장점이 있지만, 금융데이터와 같이 일관성이 중시되는 DB로 사용되기는 어렵습니다.

데이터 수집도구

정형데이터, 비정형 데이터의 수집과 처리 그리고 대용량 데이터의 HDFS 분산파일시스템 저장을 담당합니다.

  • Chukwa: 비정형 데이터의 처리를 담당합니다. 분산 서버에서 agent를 실행하여, 수집을 담당하는 collector로 부터 데이터를 받아 HDFS에 저장합니다. 이 외에 비정형 데이터 수집모듈로는 Flume, Scribe 등이 있습니다.
  • Sqoop:  RDB에서 관리되는 정형데이터를 분산파일 시스템 HDFS로 import, export를 수행하는 모듈입니다. 이 외에 정형데이터 처리 모듈로 Hiho가 있습니다.

데이터 처리도구

Mahout

데이터 추천, 분류, 군집 분석과 같은 통계적 분석도구 및 머신러닝 라이브러리 등을 포함한 오픈소스 프레임워크입니다.

머하웃 라이브러리 구성요소

Hive

하둡 기반의 DW (데이터 웨어하우스) 솔루션의 일종입니다.SQL과 유사하여 Hive SQL 이라고도 불리며 쿼리를 통해 하둡의 데이터 분석을 용이하도록 도와줍니다.

Pig

복잡한 맵리듀스 사용법을 대체할 API로 개발되어, RDB에서 사용하는 SQL 쿼리 언어와 유사하게 디자인되었습니다. 다만 외형적으로만 유사할 뿐 실제 사용법은 다릅니다.

관리도구

Zookeeper

분산환경에도 동작하는 서버들 간에 상호 조정이 필요한 기능들 관리하고, 서비스를 적절히 분산하여 처리되도록 동기화를 담당하는 모듈입니다.

Ambari

하둡 시스템을 직관적인 UI를 통해 통합 관리하기 위한 프로그램으로 REST API를 제공합니다. 아래 UI 에서 보는 것처럼 각 서브 모듈들의 상태를 한눈에 그래프 등을 통해 체크가 가능합니다.

Ambari UI 이미지 예

Ambari의 특징은 다음과 같습니다.

  • 설치 및 구성의 간소화 (대규모 클러스터의 효율적 생성, 관리 가능)
  • 중앙집중식 보안설정
  • 클러스터 전체 status를 가시적으로 확인

이상으로 대표적인 하둡 에코시스템의 기능들을 살펴보았습니다. 이 외에도 매우 다양한 오픈소스 도구들이 사용되고 있습니다.

Leave a Comment