기고 | 하둡 배포판 3종의 현재와 미래

Network World

하둡(Hadoop)은 방대한 데이터 세트를 간단히 분석할 수 있는 새로운 방법을 제시하면서, 빅 데이터 시장을 순식간에 탈바꿈시켰다. 최근 하둡과 빅 데이터가 동의어로 사용되는 경우가 많은 이유다.

하둡은 오픈소스 프로젝트다. 따라서 많은 벤더들이 새 기능을 추가하거나 코드 기반을 개선하는 방식으로 독자적인 배포판(distributions)을 개발해 공급하고 있다. 빅 데이터 전문 기업 알토로스(Altoros)가 작성한 이번 기사는 하둡 표준판과의 차이와 함께 중요 배포판을 개략적으로 설명하고 있다.

표준 오픈소스 하둡 배포판(아파치 하둡)에는 다음이 포함되어 있다.

- 병렬 컴퓨팅을 실행시키는 하둡 맵리듀스(MapReduce)
- 하둡 분산형 파일 시스템(HDFS: Hadoop Distributed File System)
- 다른 하둡 모듈이 사용하는 유틸리티와 라이브러리 세트인 하둡 커먼(Hadoop Common).

이들는 하둡의 기본 구성 요소에 불과하다. 이 밖에 특정 작업을 처리하고, 연산 속도를 높이고, 반복 작업을 최적화하는데 많이 쓰이는 아파치 하이브(Apache Hive), 아파치 피그(Apache Pig), 아파치 주키퍼(Apache Zookeeper) 등 다른 솔루션들도 있다.

벤더 배포판은 대개 오픈소스의 문제를 극복하고, 고객에게 추가적인 가치를 제공하기 위해 설계됐다. 특히 다음에 중점을 두고 있다.

- 신뢰성. 벤더들은 버그가 발견됐을 때 더 빨리 대응을 한다. 즉시 픽스와 패치를 배포해, 솔루션을 더 안정적으로 만든다.

- 지원. 기업 사명 달성에 아주 중요한 플랫폼 도입과 엔터프라이즈급 작업 처리가 가능하도록 기술 지원 서비스를 제공하는 회사들이 많다.

- 완성도. 특정 작업을 처리하기 위해, 다른 툴로 기능을 보강한 하둡 배포판이 아주 많다.
여기에 더해, 벤더들은 하둡 표준 배포판을 개선하는데 공헌하고 있다. 오픈소스 저장소에 업데이트한 코드를 제공하면서 하둡 공동체의 성장을 촉진하고 있는 것이다.

클라우데라(Cloudera), 맵알(MapR), 호트웍스(Hortonworks)가 가장 많이 쓰이는 하둡 배포판 3종이다. 아래의 도표는 '2012-2017년 빅 데이터 벤더의 매출과 시장 전망(Big Data Vendor Revenue and Market Forecast)'이라는 시장 조사 보고서의 분석 결과를 보여주는 것이다. 중요 하둡 벤더들의 2012년 매출을 비교해 보여주고 있다.



클라우데라와 호트웍스는 100% 오픈소스 배포판이라고 주장하고 있다다. 반면 맵알의 하둡 배포판인 M3, M5, M7에는 안정성과 성능을 개선하기 위해 독자 개발한 구성 요소들이 일부 추가돼 있다.

클라우데라, 맵알, 호트웍스 외에도 IBM과 인텔(Intel), 피보탈 소프트웨어(Pivotal Software) 등이 하둡 배포판을 공급하고 있다. (IBM 배포판 같이) 소프트웨어 스위트의 일부로 공급되는 배포판이 있고, (제온 마이크로프로세스에 최적화된 인텔 배포판 같이) 특정 과업을 해결할 수 있도록 설계된 배포판이 있다.

인기 하둡 배포판 3종의 중요 특징
아래 표의 숫자는 특정 하둡 배포판에서 제공되는 구성 요소의 버전을 의미한다. 성능 비교는 '하둡 배포판 비교: 클라우데라, 호트웍스, 맵알(Hadoop Distributions: Cloudera vs. Hortonworks vs. MapR)' 연구 보고서를 참조한다.

 

 


 


하둡 2.0
여러 벤더에 의해 개선되기는 했지만 아파치 하둡 1.0은 다음과 같은 이슈들이 남아 있었다.

- 네임노드(NameNode)가 단 하나다. 전체 클러스트를 관리하는 역할을 한다. RAM에 저장된 메타데이터를 비롯 모든 메타데이터 작업을 처리한다. 최대 4,000 노드와 4만 태스크(task, 작업)까지 확장이 된다. 이 노드는 단일 장애점(SPOF: single point of failure)이다.

- 노드 중 일부에서 하둡 구성 요소를 업데이트할 수 없다.

- 맵리듀스 패러다임은 제한된 작업 유형에만 적용을 시킬 수 있다.

- (맵리듀스를 제외하고) 데이터 처리에 적용할 수 있는 다른 모델은 없다.

- 가장 효과적인 방법으로 클러스트의 자원을 활용할 수 없다.

대다수 배포판은 특정 '제한'들을 처리하기 위한 목적에서 개발이 됐다. 그러나 오픈소스 버전과 비교했을 때 아키텍처는 크게 바뀌지 않았다. 2013년 출시된 하둡 2.0이 큰 발전이라는 평가를 받은 이유가 여기에 있다.

하둡 2.0은 하둡을 배치 데이터 처리 솔루션에서 진정한 멀티 애플리케이션 플랫폼으로 탈바꿈시킨 새로운 클러스터 관리 시스템인 얀(YARN ; Yet Another Resource Negotiator)이 특징이다. 이 업데이트된 버전은 다음 문제들을 없앴다.

- 네임노드가 하나인 시스템의 취약점 (단일 장애점).

- 한 클러스터의 노드 수가 크게 증가할 수 있음.

- YANR은 하둡으로 성공적으로 해결할 수 있는 태스크의 수를 늘림.

아래는 하둡 2.0에 도입된 멀티 애플리케이션 기법과 YARN이 HDFS와 데이터 처리 애플리케이션 사이의 계층이라는 점을 보여주는 그림이다.

 
 

 

YARN은 자원 관리와 스케쥴링이라는 두 가지 태스크를 별개의 개념으로 분리하는 기술이다. YARN은 중앙 자원관리자(ResourceManger)와 애플리케이션마스터(ApplicationMaster)를 보유하고 있다. 각 애플리케이션을 별개로 구성하기 위해 만들어진 것들이다.


이는 배치, 인터랙티브, 인메모리, 스트리밍, 온라인, 그래프, 기타 유형의 애플리케이션을 동시에 실행시키도록 돕는 기술이다. 그림 3과 4는 하둡 버전 2종의 아키텍처 차이점을 보여준다.


그림 3. 하둡 1.0에서의 태스크 관리

하둡 1.0에는 태스크트래커(TaskTracker) 수천 개와 맵리듀스 태스크를 처리해야 하는 잡트래커(JobTracker)가 하나 있다. 이 아키텍처는 확장성과 관련된 선택권을 줄이며, 클러스터가 하나의 애플리케이션만 실행시킨다.


그림 4. 하둡 2.0에서의 태스크 관리

하둡 2.0에는 한 개의 리소스매니저와 여러 개의 애플리케이션마스터가 있다. 별개의 애플리케이션 마스터가 각 애플리케이션을 관리하기 때문에 클러스터에서 '병목'이 되지 않는다. 호튼웍스 개발팀은 "큰 문제 없이 최신 하드웨어로 구성된 1만 개의 노드 클러스터를 시뮬레이션 할 수 있다"라고 설명한다. 클러스터 관리 태스크를 애플리케이션 라이프 사이클에서 분리하면서 클러스터 확장성을 크게 개선시켰다.

동시에 YARN은 글로벌 리소스매니저로 자원 활용도를 높인다. 이를 추가해 클러스터 속도를 높일 수 있다. YARN에서는 공동 자원 풀을 공유하는 여러 다른 애플리케이션을 실행시킬 수도 있다. 맵과 리듀스 슬롯이 정해져 있지 않기 때문에 클러스터 내부 자원을 더 효율적으로 활용하는데 도움이 된다.

YARN은 하둡 내부에서 맵리듀스가 아닌 태스크를 처리할 수 있다는 장점 때문에 차세대 데이터 처리 툴이라는 평가를 받고 있다. 하둡 2.0에서는 그래프 처리 및 반목 모델링 등 프로그래밍 모델을 추가시킬 수 있는 것도 특징이다. 이는 이 툴을 이용해 해결할 수 있는 태스크의 범위를 넓혀준다.


우리는 가까운 장래에 YARN에 기반을 둔 애플리케이션의 수가 급증할 것으로 전망하고 있다. (페이스북의 소셜 연결 등 그래프 분석을 위한) 아파치 지라프(Apahce Giraph), (머신 학습과 데이터 마이닝용) 스파크(Spark), (머신 학습과 그래프 알고리즘인) 아파치 하마(Apache HAMA), (실시간 무한대 데이터 스트리밍을 위한) 스톰(Storm) 등이 새 아키텍처 등에 맞춰 조정돼 있다.

미래의 하둡 배포판
하둡 배포판의 발전에 큰 영향을 미치는 몇 가지 트렌드가 있다.

* YARN 도입. 하둡 2.0은 동시에 더 많은 컴퓨팅을 실행시킬 수 있도록 더 큰 클러스터들을 지원한다. 더 유연한 데이터 처리와 통합 알고리즘 지원을 포함, 보다 광범위한 태스크에 부합하는 새로운 클러스터 관리 시스템이 채택돼 있다. 이런 이유로 2013년 동안 클라우데라와 호튼웍스가 활발히 도입되기 시작했다.

맵알은 독자 개발한 구성요소를 배포판에 사용하고 있기 때문에 조금 더 많은 시간이 필요했다. YARN을 지원하는 맵알 2.0이 2014년 3월 출시될 예정이다. 아직까지 기본 HDFS 대신 독자적인 파일 시스템을 사용하고 있지만, 이 벤더는 앞으로 더 많이 사용되고 있는 오픈소스 하둡 코드를 사용할 가능성이 있다. 이질적인 오픈 하둡 구성 요소를 더 많이 지원하고 있기 때문이다.

* 데이터 병합을 위해 써드파티를 통합. 하둡 배포판은 데이터 분석용 써드파티 솔루션과 통합되고 있는 추세다. 예를 들어, 클라우데라는 자신들의 (아파치 하둡이 포함된 배포판인) CDH를 오라클, 태블루(Tableau), 테라데이터 등 데이터 분석 및 보고 시스템과 연동시킬 수 있는 커넥터를 추가시켰다.

CDH는 개발자들이 복잡한 코드를 학습해 적용할 필요 없이 빅 데이터 소스와 타겟을 시각적으로 도식화 할 수 있는 이용하기 쉬운 그래픽 환경인 '빅 데이터용 탈렌드 오픈 스튜디오(Talend Open Studio for Big Data)를 지원한다. 이 툴에는 여러 데이터 소스에서 데이터를 수집하는 커넥터가 450개 이상 들어있다.

* 상당한 성능 향상. 클라우데라는 최근 스파크를 지원한다고 발표했다. 인메모리 연산에 바탕을 둔 이 모델은 일부 경우에는 최대 100배까지 데이터 처리 속도를 크게 높여준다. 호튼웍스 또한 연산 속도 향상에 매진하고 있다. 이 회사는 아파치 하이브 쿼리 속도를 최대 100배까지 높이는데 목표를 둔 스팅거(Stinger) 프로젝트를 시작했다. 또 처리 속도를 높이기 위해 저장된 데이터를 최적화 하고 있다.

맵알이 후원하는 아파치 드릴(Apache Drill) 프로젝트 또한 유사한 목표를 갖고 있다. 이는 구글이 백서인 '드레멜: 웹 스케일 데이터세트에 대한 인터렉티브 분석(Dremel: Interactive Analysis of Web-Scale Dataset)'에서 소개한 모델에 바탕을 두고 있다. 그러나 비교적 새로운 프로젝트로, 실용화를 위한 준비가 되어 있지 않을 수 있다.

피보탈 소프트웨어는 SQL 방식의 쿼리를 하이브 보다 318배 빠르게 처리할 수 있는 독자 개발 구성 요소인 HAWQ를 특징으로 하는 피보탈HD(PivotalHD)라는 하둡 배포판을 공급하고 있다. 불행히도, 이런 성과를 입증할 수 있는 객관적인 평가 결과는 없다.

초병렬 프로세스(Massively Parallel Processor) 아키텍처와 유사한 시스템에 대한 써드파티 성능 벤치마크에 관심이 있다면 AMPLab 버클리의 자료를 참고할 수 있다.

* 데이터 보안. 하둡 벤더들은 데이터 액세스 보안, 승인 제한, 기타 광범위한 데이터 보호 문제를 해결하기 위해 열심히 노력할 것이다.

* 특정 태스크를 위한 기능성 확대. 하둡 배포판을 공급하는 회사들은 프레임워크에 새로운 기능성을 부여하는 모듈을 추가할 방법을 찾고 있다. 예를 들어, 클라우데라 배포판에는 풀텍스트 검색과 SQL 쿼리를 이용해 HDFS에 저장된 데이터를 실시간 처리하는 엔진인 임팔라(Impala)가 탑재되어 있다.

호튼웍스는 스팅거 이니셔티브에 SQL 시맨틱(Semantics) 지원 기능을 추가했으며, 불필요한 태스크를 없애고, HDFS의 쓰기, 읽기 속도를 높여 반복 태스크 속도를 높이는데 도움을 줄 수 있는 새 아키텍처인 아파치 테즈(Apache Tez)를 개발하고 있다. 완디스코(Wandisco)는 논스톱(Non-Stop) 하둡 기술을 통해 데이터센터 이중화(cross-data center replication) 기능을 제공한다.

결론
하둡은 현재 빅 데이터 생태계의 통합되어 있을뿐더러, 관련 툴 개발에 도움을 주는 원동력 역할을 하고 있다. 하둡 1.0은 특정 워크로드를 목적으로 엔터프라이즈 시스템에 도입되고 왔다. 그러나 YARN에서는 이런 상황이 바뀔 전망이다. 새 아키텍처는 하둡으로 해결할 수 있는 작업 범위를 넓히고 있기 때문이다.

예를 들어, 스톰과 함께 사용할 경우 무한 데이터 스트림 처리 속도를 높일 수 있다. 또 스파크의 경우 데이터 분석 이니셔티브에 도움을 주고, 테즈는 반복 알고리즘을 더 빨리 만든다.

이번 기사는 하둡 생태계의 트렌드를 개략적으로 소개하고 있다. 그러나 성능을 비교하고 있지는 않다. 하둡 배포판에 기반을 둔 YARN 클러스터의 실제 성능을 분석한 성능 분석 결과를 찾기란 아주 어렵다. 자세한 통계는 하둡 1.0과 관련이 있다. 여기(이미 업데이트한 HDP 2.0에서의 하이브) 및 여기(호튼웍스, 클라우데라, 맵알)를 참조하면 이해에 도움이 될 것이다.

이유는 간단하다. 클라우데라의 새 아키텍처는 아직 베타 버전이고, 맵알은 2014년 3월에 2.0을 출시할 계획을 갖고 있다. 대다수 벤더들이 아직 기술을 개발하고 있는 단계에 있는 것이다. 하둡 1.0과 2.0의 실제 성능을 비교하고, 그 차이가 하둡 배포판에 기반을 둔 클러스터에 어떤 영향을 미치는지 발견하는 것이 흥미로울 것이다.

* Grigorchuk는 빅 데이터 프로젝트 지원과 PaaS 구현 서비스를 제공하는 알토로스의 R&D 디렉터다. 그는 빅 데이터, 분산형 컴퓨터, 수학 모델링, 클라우드 기술 등 여러 연구 프로젝트에 저자로 참가했다. ciokr@idg.co.kr