하둡 1.0과 2.0을 간단히 비교해보도록 하자.
아키텍쳐의 변화
Single Use System -> Multi Use System
핵심적인 차이는 배치 처리에 특화된 시스템인가 or 배치, 인터렉티브, 스트리밍과 같이 다양한 데이터 처리 형태를 지원하는가 입니다.
하둡 1.0의 경우 하둡파일시스템(HDFS)와 분산된 대랑 데이터를 읽어서 처리하는 맵리듀스(MapReduce)로 이루어진 단일 시스템 성격이 큽니다.
하지만, 맵리듀스(MapReduce)는 하둡 2.0에서 다른 많은 처리 방법 중의 하나로 이용됩니다.
그 중심엔 Yarn이라는 레이어가 HDFS과 결합했다는 것이 있습니다.
1) Yarn의 핵심은 JobTracker를 Resource Manager와 Application Master로 분리했다는 것입니다.
하둡 1.0 MapReduce 프레임워크의 Job Tracker는 두 가지 기능을 수행하고 있습니다.
- 클러스터 전체의 리소스 관리 (Resource Manager)
- 여러 잡(Job)을 수행하면서 성공적으로 끝날 때 까지 관리해주는 것 , 스케쥴링과 모니터링을 담당(Application Master)
하둡 2.0의 Yarn에서는
- 클러스터마다 Application Master라는 것이 존재하고 클러스터내의 각 서버마다 Node Manager가 존재
- 잡(Job)마다 하나의 서버가 AM로 실행되어 해당 잡에 필요한 자원을 Resource Manager로부터 받아내고 해당 잡 내의 태스크들을 관리하는 역할을 함
즉 하나의 RM에서 맵리듀스 AM, 스트리밍 AM, SQL AM 등 특정 어플리케이션을 동시에 운영하도록 만들었습니다.
> Interactive with all data in multiple ways simultaneously
2) 효율적인 자원 관리
하둡 1.0의 경우 MapReduce 프레임워크의 문제는 맵퍼와 리듀스를 따로 설정하다 보니 맵퍼는 모두 작동하는데 리듀서는 놀고 있거나 반대의 경우가 생김 > 클러스터 전체 사용률이 굉장히 낮았습니다.
하둡 2.0의 경우 맵퍼와 리듀서의 슬롯이 별도로 존재하지 않고 둘 다 컨테이너 안에서 동작하며 컨테이너 자체도 따로 슬롯이 있는 것이 아니라 전체 클러스터의 리소스 상황과 요청된 잡(Job)의 리소스 요구에 따라 Container가 몇 개나 실행될지 등이 결정됩니다.
3) 확장성 범위 확대
하둡 1.0에서는 JobTracker는 하나의 노드이고 거기서 클러스터 전체의 리소스 관리와 실행중인 잡관리를 하다보니 4펀대 이상의 클러스터나 4만개 이상의 테스크를 동시에 실행하지 못하는 문제가 있었습니다.
하둡 2.0 Yarn에서는 Resource Manager와 Application Master의 분리로 이 문제를 해결하였습니다.
4) 다양한 분산 처리 환경 지원
하둡 2.0의 Yarn 위에선 Yarn API를 통해새로운 분산처리 환경 개발이 가능합니다.
SPARK를 비롯하여 오픈소스 분산처리 시스템인 HAMA, GIRAPH등이 지원되고 있다. MapReduce 프레임 워크의 경우도 Yarn API입니다.
이 자료는 sk c&c블로그 & ASD Technologies 블로그에서 정보를 취합하였습니다.
'Data Engineer > Hadoop' 카테고리의 다른 글
하둡 2.0 구성요소 and 동작방식 (0) | 2016.05.04 |
---|---|
하둡(Hadoop)이란? (0) | 2016.05.04 |
하둡의 시작 - 빅데이터의 정의 (0) | 2016.05.04 |