본문 바로가기
츄Log/끄적끄적

Hadoop 에코시스템 먹방 -3. MapReduce

by 츄츄🦭 2024. 6. 11.
728x90

MapReduce?

> 하둡에서 사용되는 분산 컴퓨팅 프레임워크
> 입력 데이터를 정해진 크기로 나누어 여러 개의 작업을 생성하고 병렬로 수행함
> 일부 작업이 실패하더라도 자동으로 다시 수행함
> 그러므로 입력 데이터의 크기와 상관 없이 동일한 코드로 작업 가능함 

MapReduce 작업 구조

Map
> 입력을 정해진 크기로 나눈 후 사용자가 정의한 함수를 실행함
> 입력 데이터를 정렬하거나 분류함
> key-value 형태의 데이터가 생성됨
> Map 작업의 결과물은 작업이 수행된 장비의 로컬 디스크에 저장됨

Reduce
> Map의 결과를 최종적으로 병합하여, 사용자가 정의한 함수를 실행시킴
> 결과를 로컬이 아닌 분산디비인 HDFS에 저장함

Shuffle & Sort
> Map작업의 결과를 Reduce작업으로 넘겨주기 전에 정렬해줌
> Reduce 작업이 효율적으로 수행될 수 있도록 도와줌 (Map의 결과를 재배치하여)
> Reduce작업을 위한 것이기 때문에 Reduce 작업이 없다면 shffle & sort 작업은 수행되지 않음 
> ex. 같은 키끼리 묶어줘서 다음 reduce 단계에서 작업량을 줄여줌


장점
> 분산시스템 구조를 몰라도 병렬화 방식을 통한 분산처리를 할 수 있음
> 중간 작업이 실패해도 자동으로 다시 수행함
> 리소스가 부족해도 노드를 늘려 스케일아웃이 용이함

단점
> 대용량 배치 작업을 위한 프레임워크라 실시간 처리에는 적합하지 않음
> 한번의 프로세스를 진행할 때 여러 단계를 거쳐야하며 중간 결과물을 disk에 쓰기 때문에 스트리밍 작업에 적합하지 않음
> 맵과 리듀스라는 정해져있는 작업 형태가 있기 때문에 단순한 데이터만 처리 가능함

728x90