-리듀스(Map-Reduce)는 구글이 분산 컴퓨팅을 지원하기 위한 목적으로 제작하여, 2004년 발표한 소프트웨어 프레임워크입니다이 프레임워크는 대용량 데이터를 신뢰할 수 없는 컴퓨터로 구성된 분산 클러스터 환경에서 대규모 데이터를 병렬로 처리하기 위해 개발되었습니다.

 

-리듀스의 혁신적인 부분은 데이터 집합에 대한 쿼리를 입력 받아분할 한 후여러개의 노드에서 병렬로 처리하는데 있습니다이러한 분산 처리는 단일 장비에서 처리하기에는 부적합한 대규모 데이터 처리 문제를 해결합니다.

 

분산 환경에서의 Map-Reduce 실행 ]

 

위의 그림은 네임노드(NameNode)의 잡트랙커(JobTracker)가 데이터노드(DataNode)의 테스크트랙커(TaskTracker)에게 일을 분배해 주는 개념도입니다데이터노드는 컴퓨터 한대라고 생각하시면 되며-리듀스 함수들은 컴퓨터 마다 상주하여 병렬로 작업을 수행함으로써 대규모 데이터를 짧은 시간안에 처리할 수 있습니다.

 

 

SMAQ (Storage, Map-Reduce and Query) 시스템

-리듀스가 널리 활용되기 시작하면서 스토리지(Storage), -리듀스(Map-Reduce), 쿼리(Query) 레이어로 구성된 빅데이터 시스템 스택(Stack)이 탄생하였습니다. SMAQ 시스템은 오픈소스로 일반 범용 하드웨어에서 분산 운용되는 것을 특징으로 합니다.

 

[ SMAQ 시스템 ]

 

리눅스(Linux), 아파치(Apache), MySQL, PHP 레이어로 구성된 범용 LAMP(Linux, Apache, MySQL, PHP) 스택이 웹 애플리케이션의 지평을 바꾸어 놓은 것과 마찬가지로 SMAQ 시스템은 빅데이터 처리의 지평을 확대하는데 큰 역할을 하고 있으며데이터 중심의 제품 및 서비스의 새로운 시대를 선도할 것입니다.

 

 

-리듀스(Map-Reduce)의 개념

-리듀스는 맵 단계와 리듀스 단계로 처리 과정을 나누어 작업합니다(map)은 흩어져 있는 데이터를 관련 있는 데이터끼리 묶는 작업을 통해서 임시 데이터 집합으로 변형되며리듀스(Reduce)는 맵 작업에서 생성된 임시 데이터 집합에서 중복 데이터를 제거하고 원하는 데이터를 추출하는 작업을 진행합니다.

 

[ Map-Reduce 작업 ]

 

 

-리듀스 처리 순서

맵리듀스가 분산병렬 처리하기 좋은 이유는 입력 데이터에 대한 맵 함수는 동시에 독립적으로 병렬 처리할 수 있는 구조이기 때문입니다다음 그림을 통해서 맵-리듀스 작업 순서에 대해서 알아보겠습니다.

 

-리듀스 처리 방법 ]

 

 

 분할(Splitting)

입력 파일의 값을 라인 단위로 분할합니다.

 

 매핑(Mapping)

분할된 라인 단위 문장을 맵(Map) 함수로 전달하면맵 함수는 공백을 기준으로 문자를 분리한 후에 단어의 개수를 계산합니다맵 함수를 거치면서 임시 데이터 결과가 메모리에 저장됩니다.


 셔플링(Shuffling)

메모리에 저장되어 있는 맵 함수의 출력 데이터를 파티셔닝과 정렬을 해서 로컬 디스크에 저장한 후에 네트워크를 통해 리듀서의 입력 데이터로 전달합니다.


 리듀싱(Reducing)

리듀스(Reduce) 함수는 단어 목록들을 반복 수행하면서 합을 계산하여 표시합니다.

 

 

-리듀스의 문제점

최근까지 하둡은 HDFS의 대규모 데이터를 처리하는 계층으로 맵-리듀스를 선택했습니다하지만 최근 소개된 차세대 하둡으로 알려진 얀(YARN, Yet Another Resource Negotiator)은 하둡 환경의 맵-리듀스에 대한 의존성을 제거하였습니다.

 

이러한 변화에는 맵-리듀스가 가지고 있는 확장성 문제와 처리 속도가 느리다는 제약사항 때문입니다-리듀스의 이러한 한계로 인하여 많은 개발업체들이 속도 향상를 위하여 다른 방법을 생각하도록 유도하였습니다. ( 예를 들면 IBM의 어댑티브 맵-리듀스(Adaptive Map-Reduce)을 들수 있다.)

 

하둡 2.0 스택 ]

 

위의 그림을 보시면 하둡 2.0에서는 클러스터 리소스 관리(Cluster Resoruce Management)를 맵-리듀스 대신에 얀(YARN)이 담당하고 있습니다얀은 기존의 맵-리듀스 API와의 호환성을 유지하면서도 타 회사에서 개발된 다양한 도구에서도 실행될 수 있도록 확장성을 부여하였습니다이를 통해서 속도가 느린 맵-리듀스의 단점을 해결할 수 있는 기반을 마련한 것입니다.

'빅데이터 > 빅데이터 처리' 카테고리의 다른 글

얀(YARN)  (0) 2017.08.03
빅 쿼리(Big query)  (0) 2017.08.03
소셜분석(Social Analysis)  (0) 2017.08.03
텍스트마이닝(Text Mining)  (0) 2017.08.03
데이터마이닝(Data Mining)  (0) 2017.08.03

+ Recent posts