[Bigdata] 맵리듀스(Mapreduce)란?

🌟 빅데이터 처리 맵리듀스(Mapreduce)

🎯 맵리듀스란?

대용량 데이터에 대한 분산, 병렬처리를 자동으로 설정해주는 프로그래밍 모델입니다. 개발자가 작성한 map 함수와 reduce 함수를 통해 데이터를 나누어 처리합니다.

🎯 맵리듀스의 배경 - 변경된 아키텍쳐

전통적으로는 서버 한대의 CPU나 memory등 부품을 교체하는 scale up 방식을 통해 성능을 향상시켰지만, 현재에 이르러서는 데이터가 너무 많아져서 scale up으로는 성능을 향상시키기 어려워졌습니다. 이런 문제를 해결하고자 일반 PC를 묶어 네트워크를 형성하고 그 사이에서 데이터를 처리하고 보내는 방식으로 구조를 변경하게 됩니다. 이때 각 PC를 묶는건 switch가, 그렇게 만들어진 switch들을 묶는건 backbone switch가 담당하게됩니다.

🎯 맵리듀스의 배경 - 분배와 오류처리 문제

이때 PC를 클러스터로 묶으면 다음과 같은 이슈가 생깁니다. 1. 데이터를 다른 PC에 각각 전부 복사해서 저장하는건 너무 큰 비용을 감당해야함 2. 한 PC가 다운되면(죽으면..) 다른 PC들을 어떻게 처리할 것 인지 정해야 함 이를 해결하기위해서 Mapreduce를 활용하게 됩니다.

🎯 맵리듀스의 배경 - 해결

데이터 전체를 복사해두는게 아니라 map과 reduce 함수의 코드를 복사하여 데이터를 가지고 있는 각 PC에 넣어줍니다.


Written by@이주형
平常心

GitHubFacebook