Hadoop.1 Hadoop 스택 개요

By Timo Elliott
이 시리즈는 Coursera의 Hadoop Platform and Application Framework 강의를 듣고, 내용을 요약 정리한 것이다. 

지금까지 빅데이터의 기술적인 면과 비지니스적인 면에 대해 기본적인 개념을 훑어 보았다. 이제부터는 기술적인 면에 집중해서 특히 Hadoop 스택이 어떻게 생겼고, 어떻게 동작하고, 이것으로 무엇을 할 수 있는지 알아볼 것이다.

먼저 Hadoop에 대해 간단히 설명하면 "안정적이고, 확장성 있고, 분산 컴퓨팅을 지원하며, 저렴한(commodity) 서버들로 클러스터를 구성하여 커다란 데이터 집합들을 배치하고 분산 프로세싱을 가능케 하는 오픈소스 소프트웨어"이다.

Hadoop의 탄생

Hadoop은 2005년에 Doug Cutting과 Mike Cafarella에 의해 만들어졌다. Doug Cutting은 오픈소스 검색엔진인 Lucene을 만들었고, Yahoo에 있을 때는 Nutch라는 Crawler를 만들었다. 그러다가 구글이 발표한 MapReduce 논문에서 영감을 얻어 Hadoop을 만들기 시작했다. 그는 현재 Hadoop의 가장 대표적인 배포판을 만드는 Cloudera를 이끌고 있다.

Doug Cutting의 아들이 가지고 놀던 코끼리 장난감의 이름에서 Hadoop이 유래했다고 한다.

Hadoop은 원래 단순한 배치(batch) 작업을 위한 프레임워크로 출발했다. 그리고 Hadoop이 채용한 MapReduce 알고리즘으로 대량의 계산을 수행할 수 있었다.  그래서 Hadoop은 단순하지만 파워풀한 컴퓨팅 프레임워크로 자리 잡았다.

Hadoop의 기본 아이디어는 "계산을 위해 데이터를 옮기는 것이 아니라, 데이타가 있는 곳에서 계산을 수행하자"는 것이다.

By Natasha Balac
이제 확장성(Scalability)에 대해 얘기해보자. 확장성은 Hadoop의 핵심 특성이라고 할 수 있다. 저렴한 컴퓨터를 여러대 사용하여 계산 능력과 저장 용량을 확장할 수 있기 때문이다.

Hadoop의 또 다른 강점은 안정성(Reliability)이다. 클러스터로 구성된 서버 중 한대가 고장나더라도 서비스는 중지되지 않고, 자동으로 재배치되고 정상적으로 동작한다. 불행하게도 컴퓨터는 언젠가는 고장이 나게 마련이다.

한대면 모를까 한 랙을 구성하는 십여대의 서버, 혹은 수백대의 서버가 있다고 생각하면, 각 서버가 1년에 한번 고장나는 확률이라 할지라도 꽤 심각한 문제가 된다.  그래서 Hadoop은 클러스터를 구성하는 서버가 다운이 될 수 있다는 걸 처음부터 염두에 두고 안정성을 구현하였다.

By Natasha Balac
Hadoop의 또다른 흥미로운 면은 데이터에 대한 새로운 접근을 한다는 것이다. 예전의 데이터베이스는 데이터를 저장하기 위해서 스키마(schema)를 먼저 정의해야 했다. 그리고 이 스키마는 데이터의 갯수가 늘어날 수록 수정하는 비용이 늘어나게 된다.

그런데 Hadoop은 정형적인 데이터 뿐 아니라 비정형의 원시(raw) 데이터까지 모두 모아 저장할 수 있다. 그리고 이를 통해 우리는 새로운 유형의 분석을 할 수 있다.

Hadoop의 기본 모듈과 생태계 

Hadoop은 4개의 기본 모듈로 구성된다. Hadoop Common, HDFS, MapReduce, YARN이 그것들이다.
  • Hadoop Common : 다른 모듈이 사용할 수 있는 라이브러리와 유틸리티 모음 
  • HDFS : 데이터를 분산하고 안전하게 저장하는 파일 시스템 
  • YARN : 리소스 관리 플랫폼으로 클러스터의 컴퓨팅 리소스를 관리하고 스케쥴링
  • MapReduce : 큰 데이터 집합에 대해 분산 컴퓨팅을 하는 모듈. 
HBase, Pig, Hive 등의 모듈들도 다 이 네개의 기본 모듈 위에서 동작하는 것들이다. 
By Natasha Balac
Hadoop의 기본 모듈과 이를 사용하는 여러 어플리케이션들은 하나의 생태계(echosystem)로 비유되기도 한다. 이들 어플리케이션들은 고유의 목적과 기능을 가지고 있으며, 서로 의존 관계를 가지고 있기 때문에 Hadoop Stack이라고도 불린다. 

By Jaswant Singh / techblog.baghel.com

Hadoop 1.x 구조 

Hadoop1 버전의 경우 주요 모듈은 HDFS와 MapReduce였다.

HDFS는 데이터의 분산 처리를 관장하며 네임노드(Name Node)가 메타 데이터를 저장하고, 실제 데이터는 각 서버에 분산된 데이터 노드(Data Node)에 저장되었다.

MapReduce는 컴퓨팅의 분산 처리를 관장하며 잡트래커(Job Tracker)가 각 서버에서 컴퓨팅을 수행하는 타스크 트래커(Task Tracker)들을 관리한다. 
By Subash D'Souza
물론 이 구조는 Hadoop2 에서 수정되지만, 기본적인 아이디어는 이와 비슷하다.


관련글 |
  - BigData.9 Hadoop 설치하고 둘러보기
  - Hadoop.2 HDFS와 YARN

댓글 없음:

댓글 쓰기

인기글