Hadoop.3 Hadoop 생태계 Zoo

By J2eeDev.org
지난 시간에 우리는 Hadoop 스택의 아랫쪽 기반(HDFS, YARN)에 대해 살펴 보았다.

이제 그 위에 있는 몇가지 것들에 대해 살펴볼 차례이다. 이것들은 짧은 시간이지만 급격하게 진화해 왔다. 그래서 우리는 이것들의 역사와 맥락에 대해 알아볼 필요가 있다.

이 상위 모듈들은 우스꽝스러운 이름들이 붙어 있어서 그 정체를 한눈에 파악하기 어렵다.  대부분 동물과 연관된 이름들이기 때문에 이런 모듈들을 묶어서 동물원(Zoo)라고도 한다.


By Jay Kaycee

앞서 Hadoop은 Google의 BigTable에서 그 기원을 찾을 수 있다고 했다.  원래 Google이 구상했던 스택은 아래 그림과 같다.

GFS(Google File System)는 여러대의 서버에 분산하여 정보를 저장하고 이를 조직화하는 파일 시스템으로 이 스택의 근간이 된다.  MapReduce는 데이터가 분산되어 있는 서버의 컴퓨팅 파워를 이용하여 데이터를 처리하는 방식이다. MySQL Gateway는 MapReduce/GFS에 저장된 데이터들을 SQL과 비슷한 언어로 처리하고 가져올 수 있게 해 준다.

Chubby는 여러 서버들 간의 Lock을 처리하는 코디네이터의 역할을 하며, BigTable은 GFS와 Chubby를 기반으로 하는 일종의 NoSQL 데이터 스토리지로서 그 구조는 다차원 Map이라고 정의할 수 있다.

Sawzall은 MapReduce 작업을 간편하게 코딩할 수 있도록 도와주는 고수준 스크립트 언어이며, Evenflow는 복잡한 작업을 분배하고 스케쥴링하며, Dremel은 컬럼 기반(Columnar)의 데이터 저장소로서 메타데이터 등을 처리한다.


By Cloudera

Facebook 또한 비슷한 방식으로 스택을 구축했는데 다음 그림과 같다. Zookeeper는 Chubby처럼 전체 구성요소들을 조율하는 역할을 하며, Scribe는 외부 데이터를 집어넣는(ingest) 역할을 한다.


By Cloudera
Yahoo가 구축한 스택도 비슷하지만, Oozie나 Data Highway와 같은 새로운 이름들을 볼 수 있다. 그렇지만 이름만 다르지 하는 역할은 다 비슷하다.

By Cloudera

LinkedIn의 것도 마찬가지로 어떤 것들은 다른 곳에서 만든 것을 사용하고, 어떤 부분에는 스스로 구축한 모듈을 사용한다.

By Cloudera
우리가 사용할 Cloudera Hadoop 배포판의 경우는 아래 그림과 같이 여러 조직에서 만든 것들을 조합하여 사용한다.

By Cloudera
Hue는 UI 프레임워크와 SDK를 담당하고, Oozie는 워크플로우와 스케쥴링을 담당한다. Hive는 메타데이터의 관리를 담당하고, Flume과 Sqoop는 외부 데이터와의 통합을 담당한다.  Pig와 Hive는 Hadoop 시스템을 사용하기 위한 고수준 언어와 컴파일러를 제공하며, Hbase는 빠른 입출력의 Columnar 데이터 저장소를 제공한다.  마지막으로 Zookeeper가 이 모든 것을 전체적으로 코디네이션한다.

Cloudera는 공부하기에 멋진 VM 배포판을 제공하기 때문에 번거롭게 서버를 구해 처음부터 설치하는 수고를 덜 수 있다. 물론 설치하는 법도 언젠가는 알아야겠지만, 자칫 본론에 들어가기 전에 진을 뺄 수 있기 때문에 Cloudera VM의 편리함이 고마울 따름이다.

물론 VM의 경우 메모리를 많이 사용하고, 느린 문제가 있다. 가지고 있는 PC의 메모리가 작고 컴퓨팅 성능도 떨어진다면 Cloudera에서 제공하는 Live 환경을 사용하여 공부할 수도 있다.


관련글 |
  - Hadoop.2 HDFS와 YARN
  - Hadoop.4 Hadoop 생태계의 주요 컴포넌트들

댓글 없음:

댓글 쓰기

인기글