topics

MapReduce

MapReduce는 무엇인가요?
IBM 제품과 함께 MapReduce 사용 Think 뉴스레터 구독 신청하기
컴퓨터 모니터, 서버, 구름, 점의 픽토그램 콜라주가 들어간 일러스트

업데이트 날짜: 2024년 11월 19일 
기고자
: Jim Holdsworth, Matthew Kosinski

MapReduce는 무엇인가요?

MapReduce는 병렬 처리를 사용하여 대규모 데이터 처리 속도를 높이는 프로그래밍 모델입니다. MapReduce를 사용하면 Hadoop 클러스터 내의 수백 또는 수천 개의 서버에서 대규모 확장이 가능합니다.

'MapReduce'라는 이름은 모델이 대규모 데이터 처리 작업을 병렬로 더 빠르게 실행할 수 있는 여러 개의 작은 작업으로 '청크'화하기 위해 수행하는 두 가지 작업을 의미합니다.

  • 첫 번째는 '매핑 작업'으로, 한 세트의 데이터를 가져와 키/값 쌍으로 포맷된 다른 데이터 세트로 변환합니다. 예를 들어 도시(키)와 일별 최고 기온(값)입니다. 

  • 두 번째는 '축소 작업'으로, 매핑 작업의 아웃풋을 가져와 동일한 키를 가진 모든 값을 집계하고 데이터를 처리하여 최종 키/값 쌍 세트를 생성합니다.

MapReduce 프로그래밍 모델은 Apache Software Foundation에서 지원하고 Java 프로그래밍 언어를 기반으로 하는 오픈 소스 소프트웨어 프레임워크인 Apache Hadoop의 핵심 처리 구성 요소 중 하나입니다.

MapReduce 모델은 Hadoop 외부에서도 사용할 수 있습니다.

새로운 데이터 관리 방식을 요구하는 AI

비즈니스 요구 사항에 적합한 신뢰할 수 있는 개방형 데이터 기반을 찾는 방법을 알아보세요.

관련 내용 등록하여 앱 현대화 가이드 살펴보기
MapReduce 작동 방식

MapReduce는 데이터 처리 프로젝트를 더 작은 조각으로 청크화하여 더 빠르게 실행할 수 있도록 도와줍니다.

예를 들어 테라바이트 또는 페타바이트의 데이터가 포함된 대용량 파일을 분석하기 위해 하나의 프로세서를 사용하는 데 10시간이 걸릴 수 있습니다. MapReduce 작업은 동일한 데이터 파일을 10개의 프로세서에서 병렬로 실행되는 10개의 작업으로 분할할 수 있습니다. 이 작업은 실행하는 데 한 시간 정도밖에 걸리지 않을 수 있습니다. 분산 컴퓨팅 노드에서 데이터를 집계하여 결과를 생성할 수 있습니다.

매핑과 축소는 MapReduce 모델의 필수 기능이지만 전체 프로세스에는 몇 가지 단계가 더 포함됩니다.

입력

MapReduce 애플리케이션은 정형 또는 비정형 데이터를 포함한 입력 데이터를 허용합니다. MapReduce 애플리케이션은 일반적으로 HDFS(Hadoop 분산 파일 시스템)에 저장된 입력 파일로 작동하지만, 이 모델은 다른 데이터 원본에서도 작동할 수 있습니다. (자세한 내용은 'Hadoop 에코시스템 내의 MapReduce'를 참조하세요.)

특정 작업의 경우 MapReduce 프레임워크는 분산 서버를 선택하고 통신 및 데이터 전송을 관리하며 내결함성 및 이중화를 지원하는 데 도움이 됩니다.

분할
 

입력 데이터는 더 작은 블록으로 분할됩니다. 이러한 블록은 다양한 컴퓨팅 노드에 있는 매퍼—다음 단계에서 매핑을 수행하는 기능—에 분산됩니다. MapReduce 프레임워크는 효율적인 로드 밸런싱을 위해 매퍼 전반에 걸쳐 데이터를 거의 균일하게 할당하는 것을 목표로 합니다.

매핑
 

각 노드에서 매핑 함수는 수신한 데이터를 처리하여 데이터를 키/값 쌍으로 변환합니다.

매퍼의 총 개수는 총 데이터 볼륨과 각 매퍼에서 사용 가능한 메모리 블록에 따라 Hadoop 프레임워크 내에서 결정됩니다. 매퍼, 리듀서 및 아웃풋 형식에 대한 매개변수는 Hadoop 클러스터 내에서 설정할 수 있습니다

셔플
 

Hadoop 프레임워크는 매핑 아웃풋을 정렬하고 동일한 '키'(주제)를 가진 모든 키/값 쌍을 동일한 리듀서에 할당합니다. 예를 들어 도시와 해당 도시의 일일 최고 기온에 대한 데이터 세트에서 '도쿄' 키가 있는 모든 데이터는 동일한 리듀서로 이동합니다.

이름에서 알 수 있듯이 리듀서는 축소 단계를 수행하는 함수입니다.

축소
 

축소 함수는 매퍼가 내보내는 키/값 쌍을 처리합니다. 여기에는 필요한 처리 종류에 따라 데이터에 대한 병합, 표 작성 또는 다른 작업 수행이 포함될 수 있습니다.

매핑 및 축소는 동일한 서버 세트에서 수행할 수 있지만 이는 선택 사항입니다. 

결과
 

각 리듀서는 처리 결과를 HDFS 또는 기타 데이터 저장소로 아웃풋합니다.

MapReduce의 예

조직에서 분석하려는 데이터의 양과 관계없이 핵심 원칙은 동일하게 유지됩니다.

이 예제에서 데이터 세트에는 도시(키)와 각 도시에 대해 기록된 해당 일별 기온(값)이 포함됩니다. 샘플 키/값 쌍은 다음과 같습니다. <토론토, 18>.

데이터는 여러 파일에 분산되어 있습니다. 각 파일에는 여러 도시의 데이터가 포함될 수 있으며, 같은 도시가 여러 번 포함될 수도 있습니다.

이 데이터 세트에서 사용자는 추적된 기간의 각 도시의 '최고 기온'을 식별하려고 합니다.

이 작업을 처리하기 위한 MapReduce 구현은 다음과 같습니다.

  1. 기온 정보가 포함된 데이터 파일은 MapReduce 애플리케이션에 입력으로 공급됩니다.

  2. 파일은 매핑 작업으로 나뉘며 각 작업은 매퍼 중 한 명에게 할당됩니다.

  3. 매퍼는 데이터를 키/값 쌍으로 변환합니다.

  4. 매핑 아웃풋은 동일한 도시 키를 가진 모든 값이 동일한 리듀서를 갖도록 셔플 및 정렬됩니다. 예를 들어 토론토의 모든 기온 값은 하나의 리듀서로 이동하고 다른 리듀서는 런던의 모든 값을 집계합니다.

  5. 리듀서는 데이터를 처리하여 각 도시의 최고 기온 값을 결정합니다. 그런 다음 데이터는 각 도시에 대해 가장 높은 키/값 쌍으로 축소 됩니다.

  6. 축소 단계가 끝나면 가장 높은 값을 수집하여 다음과 같이 결과를 생성할 수 있습니다. <도쿄, 38> < 런던, 27> < 뉴욕, 33> < 토론토, 32>.
Hadoop 에코시스템 내의 MapReduce

Hadoop 에코시스템은 효율성을 높이기 위해 함께 작동하도록 설계된 오픈 소스 모듈 제품군입니다. 주요 Hadoop 프레임워크를 구성하는 모듈에는 MapReduce를 비롯하여 다음 세 가지가 더 있습니다.

Hadoop 분산 파일 시스템(HDFS)
 

HDFS 는 최대 수천 개의 상용 서버에 애플리케이션 데이터를 저장하기 위한 분산 파일 시스템입니다.

HDFS는 Hadoop에 내결함성을 제공하고 데이터에 빠르게 액세스할 수 있도록 설계되었습니다. 기본적으로 데이터 블록은 로드 또는 쓰기 시 여러 노드에 복제됩니다.

HDFS 아키텍처에는 파일 시스템 네임 스페이스와 파일 액세스를 관리하기 위한 NameNode와 데이터 스토리지를 관리하기 위한 다수의 DataNode가 있습니다.

Yet Another Resource Negotiator (YARN)
 

오픈 소스 Apache Hadoop, YARN은 작업 스케줄링 및 클러스터 리소스 관리를 위한 프레임워크입니다. SQL 쿼리, 고급 모델링 및 실시간 스트리밍과 같은 여러 워크로드를 지원합니다.

Hadoop Common
 

이 모듈은 다른 Hadoop 모듈을 지원하는 리소스 유틸리티 및 라이브러리의 모음입니다. Hadoop Core라고도 하며, 자동 장애 복구, 파일 시스템 수준 및 운영 체제 수준 추상화, JAR(Java Archive) 파일 및 스크립트 등을 위한 여러 리소스가 포함되어 있습니다.

기타 모듈
 

에코시스템에는 주요 Hadoop 프레임워크 외에도 다음이 포함됩니다.

  • HBase (비관계형 NoSQL 데이터베이스)
  • Mahout 및 Spark MLlib(머신 러닝용 알고리즘 라이브러리)
  • Oozie (작업 스케줄러)
  • Apache Hive 및 Apache Pig(쿼리 기반 데이터 처리 툴)
  • Solr 및 Lucene (검색 및 인덱싱용)
  • Spark(메모리 내 데이터 처리 엔진) 
  • Zookeeper (클러스터 조정)
MapReduce의 이점

MapReduce 프로그램은 다음과 같이 조직이 빅데이터 분석을 통해 귀중한 인사이트를 얻는 데 도움이 되는 몇 가지 이점을 제공합니다.

  • 확장성: MapReduce를 사용하면 조직이 여러 노드에서 HDFS에 저장된 페타바이트 규모의 데이터를 처리할 수 있습니다.

  • 더 빠른 처리: 병렬 처리와 최소한의 데이터 이동을 통해 MapReduce는 방대한 양의 데이터에 대한 빅데이터 처리를 최적화합니다.

  • 단순성: 개발자는 Java, C++, Python 등 원하는 프로그래밍 언어로 MapReduce 애플리케이션을 작성할 수 있습니다.

  • 비용 절감: 오픈 소스 프로그램인 MapReduce를 사용하면 조직의 소프트웨어 비용 예산을 절감할 수 있습니다. 그러나 인프라 및 데이터 엔지니어링 인력과 관련된 비용은 여전히 발생합니다.
MapReduce 사용 사례

복잡한 데이터 처리 작업은 다른 애플리케이션에서 더 빠르게 실행될 수 있지만, MapReduce는 많은 간단한 사용 사례를 효율적으로 처리할 수 있습니다. 다음은 MapReduce의 병렬 처리 방식에 적합한 몇 가지 애플리케이션입니다.

  • 데이터 통합: MapReduce 프레임워크를 사용하여 추출, 변환 및 로드(ETL) 프로세스를 실행하여 분석 및 저장을 위한 데이터를 준비합니다.

  • 이미지 처리: 이미지 분류와 같은 작업을 더 작은 데이터 세트로 분할하고 병렬로 처리할 수 있습니다.

  • Log analysis: 예를 들어 웹 또는 애플리케이션 서버의 로그 파일을 검토하여 추세를 파악합니다.

  • 머신 러닝 (ML): 협업 필터링, k-평균 클러스터링, 선형 회귀와 같은 ML 학습 작업에 MapReduce가 도움을 줄 수 있습니다.

  • 감정 분석: 예를 들어 MapReduce가 웹 사이트에서 고객 점수를 집계하거나 응답 클러스터를 식별하는 데 도움이 될 수 있습니다.

  • Tabulation: 예를 들어 지난 한 해 동안 국가별로 계정을 갱신한 고객 수를 계산합니다.

  • 텍스트 마이닝: 예를 들어 댓글 게시판과 같은 특정 입력 세트에서 단어가 발생하는 횟수를 추적하는 단어 수 계산 작업이 있습니다.
MapReduce의 역사

MapReduce 프로그래밍 패러다임은 2004년 Google 컴퓨터 과학자 Jeffery Dean과 Sanjay Ghemawat이 만들었습니다. MapReduce 모델의 목표는 대규모 상용 하드웨어 클러스터에서 대규모 병렬 처리를 통해 대규모 데이터 세트의 변환 및 분석을 간소화하는 것입니다. 또한 프로그래머가 데이터 관리 대신 알고리즘에 집중할 수 있게 하는 것입니다.

Google이 최초의 MapReduce 프레임워크를 도입했지만, Apache Hadoop MapReduce가 가장 널리 사용되고 있습니다.

MapReduce는 빅 데이터 분석을 발전시키는 데 핵심적인 역할을 했지만, 단점도 있습니다. 예를 들어 MapReduce는 일반적으로 데이터가 메모리에 유지되지 않으며, 반복 로직은 MapReduce 앱을 함께 연결해야만 가능합니다. 이러한 요인으로 복잡성이 증가하고 처리 시간이 길어질 수 있습니다.

MapReduce는 여전히 널리 사용되고 있지만(특히 레거시 시스템에서) 많은 조직에서는 빅데이터 애플리케이션을 위해 Apache Spark와 같은 더 빠르거나 더 전문화된 프레임워크로 전환하고 있습니다.

관련 솔루션
데이터 관리 소프트웨어 및 솔루션

탁월한 고객 및 직원 경험을 제공하기 위해 데이터 사일로를 제거하고, 복잡성을 줄이며, 데이터 품질을 개선해 주는 데이터 전략을 구축하세요.

데이터 관리 솔루션 살펴보기
IBM watsonx.data

watsonx.data를 사용하면 오픈, 하이브리드 및 관리형 데이터 저장소를 통해 데이터의 위치와 관계없이 모든 데이터로 분석과 AI를 확장할 수 있습니다.

watsonx.data 알아보기
데이터 및 분석 컨설팅 서비스

IBM Consulting을 통해 엔터프라이즈 데이터의 가치를 실현하여 비즈니스 이점을 제공하는 인사이트 중심의 조직을 구축하세요.

분석 서비스 알아보기
리소스 대규모 AI 및 분석을 위한 데이터 관리

더 신뢰할 수 있는 데이터와 더 안정적인 분석 및 AI 프로젝트 실행 등 데이터 레이크하우스와 협력할 때의 혜택을 살펴보세요.

데이터 차별화 요소

데이터 리더를가 데이터 기반 조직을 구축하여 비즈니스 경쟁력을 강화하기 위한 가이드입니다.

Apache Hadoop이란 무엇인가요?

Apache Hadoop은 간단한 프로그래밍 모델을 사용하여 대규모 데이터 세트를 매우 안정적으로 분산 처리하는 오픈 소스 소프트웨어 프레임워크입니다.

다음 단계 안내

오픈 데이터 레이크하우스 아키텍처를 기반으로 특별 제작된 데이터 저장소인 IBM watsonx.data를 통해 어디서나 모든 데이터에 대한 AI 워크로드를 확장할 수 있습니다.

watsonx.data 살펴보기 라이브 데모 예약하기