홈
topics
MapReduce
업데이트 날짜: 2024년 11월 19일
기고자: Jim Holdsworth, Matthew Kosinski
MapReduce는 병렬 처리를 사용하여 대규모 데이터 처리 속도를 높이는 프로그래밍 모델입니다. MapReduce를 사용하면 Hadoop 클러스터 내의 수백 또는 수천 개의 서버에서 대규모 확장이 가능합니다.
'MapReduce'라는 이름은 모델이 대규모 데이터 처리 작업을 병렬로 더 빠르게 실행할 수 있는 여러 개의 작은 작업으로 '청크'화하기 위해 수행하는 두 가지 작업을 의미합니다.
MapReduce 프로그래밍 모델은 Apache Software Foundation에서 지원하고 Java 프로그래밍 언어를 기반으로 하는 오픈 소스 소프트웨어 프레임워크인 Apache Hadoop의 핵심 처리 구성 요소 중 하나입니다.
MapReduce 모델은 Hadoop 외부에서도 사용할 수 있습니다.
비즈니스 요구 사항에 적합한 신뢰할 수 있는 개방형 데이터 기반을 찾는 방법을 알아보세요.
MapReduce는 데이터 처리 프로젝트를 더 작은 조각으로 청크화하여 더 빠르게 실행할 수 있도록 도와줍니다.
예를 들어 테라바이트 또는 페타바이트의 데이터가 포함된 대용량 파일을 분석하기 위해 하나의 프로세서를 사용하는 데 10시간이 걸릴 수 있습니다. MapReduce 작업은 동일한 데이터 파일을 10개의 프로세서에서 병렬로 실행되는 10개의 작업으로 분할할 수 있습니다. 이 작업은 실행하는 데 한 시간 정도밖에 걸리지 않을 수 있습니다. 분산 컴퓨팅 노드에서 데이터를 집계하여 결과를 생성할 수 있습니다.
매핑과 축소는 MapReduce 모델의 필수 기능이지만 전체 프로세스에는 몇 가지 단계가 더 포함됩니다.
MapReduce 애플리케이션은 정형 또는 비정형 데이터를 포함한 입력 데이터를 허용합니다. MapReduce 애플리케이션은 일반적으로 HDFS(Hadoop 분산 파일 시스템)에 저장된 입력 파일로 작동하지만, 이 모델은 다른 데이터 원본에서도 작동할 수 있습니다. (자세한 내용은 'Hadoop 에코시스템 내의 MapReduce'를 참조하세요.)
특정 작업의 경우 MapReduce 프레임워크는 분산 서버를 선택하고 통신 및 데이터 전송을 관리하며 내결함성 및 이중화를 지원하는 데 도움이 됩니다.
입력 데이터는 더 작은 블록으로 분할됩니다. 이러한 블록은 다양한 컴퓨팅 노드에 있는 매퍼—다음 단계에서 매핑을 수행하는 기능—에 분산됩니다. MapReduce 프레임워크는 효율적인 로드 밸런싱을 위해 매퍼 전반에 걸쳐 데이터를 거의 균일하게 할당하는 것을 목표로 합니다.
각 노드에서 매핑 함수는 수신한 데이터를 처리하여 데이터를 키/값 쌍으로 변환합니다.
매퍼의 총 개수는 총 데이터 볼륨과 각 매퍼에서 사용 가능한 메모리 블록에 따라 Hadoop 프레임워크 내에서 결정됩니다. 매퍼, 리듀서 및 아웃풋 형식에 대한 매개변수는 Hadoop 클러스터 내에서 설정할 수 있습니다
Hadoop 프레임워크는 매핑 아웃풋을 정렬하고 동일한 '키'(주제)를 가진 모든 키/값 쌍을 동일한 리듀서에 할당합니다. 예를 들어 도시와 해당 도시의 일일 최고 기온에 대한 데이터 세트에서 '도쿄' 키가 있는 모든 데이터는 동일한 리듀서로 이동합니다.
이름에서 알 수 있듯이 리듀서는 축소 단계를 수행하는 함수입니다.
축소 함수는 매퍼가 내보내는 키/값 쌍을 처리합니다. 여기에는 필요한 처리 종류에 따라 데이터에 대한 병합, 표 작성 또는 다른 작업 수행이 포함될 수 있습니다.
매핑 및 축소는 동일한 서버 세트에서 수행할 수 있지만 이는 선택 사항입니다.
각 리듀서는 처리 결과를 HDFS 또는 기타 데이터 저장소로 아웃풋합니다.
조직에서 분석하려는 데이터의 양과 관계없이 핵심 원칙은 동일하게 유지됩니다.
이 예제에서 데이터 세트에는 도시(키)와 각 도시에 대해 기록된 해당 일별 기온(값)이 포함됩니다. 샘플 키/값 쌍은 다음과 같습니다. <토론토, 18>.
데이터는 여러 파일에 분산되어 있습니다. 각 파일에는 여러 도시의 데이터가 포함될 수 있으며, 같은 도시가 여러 번 포함될 수도 있습니다.
이 데이터 세트에서 사용자는 추적된 기간의 각 도시의 '최고 기온'을 식별하려고 합니다.
이 작업을 처리하기 위한 MapReduce 구현은 다음과 같습니다.
Hadoop 에코시스템은 효율성을 높이기 위해 함께 작동하도록 설계된 오픈 소스 모듈 제품군입니다. 주요 Hadoop 프레임워크를 구성하는 모듈에는 MapReduce를 비롯하여 다음 세 가지가 더 있습니다.
HDFS 는 최대 수천 개의 상용 서버에 애플리케이션 데이터를 저장하기 위한 분산 파일 시스템입니다.
HDFS는 Hadoop에 내결함성을 제공하고 데이터에 빠르게 액세스할 수 있도록 설계되었습니다. 기본적으로 데이터 블록은 로드 또는 쓰기 시 여러 노드에 복제됩니다.
HDFS 아키텍처에는 파일 시스템 네임 스페이스와 파일 액세스를 관리하기 위한 NameNode와 데이터 스토리지를 관리하기 위한 다수의 DataNode가 있습니다.
오픈 소스 Apache Hadoop, YARN은 작업 스케줄링 및 클러스터 리소스 관리를 위한 프레임워크입니다. SQL 쿼리, 고급 모델링 및 실시간 스트리밍과 같은 여러 워크로드를 지원합니다.
이 모듈은 다른 Hadoop 모듈을 지원하는 리소스 유틸리티 및 라이브러리의 모음입니다. Hadoop Core라고도 하며, 자동 장애 복구, 파일 시스템 수준 및 운영 체제 수준 추상화, JAR(Java Archive) 파일 및 스크립트 등을 위한 여러 리소스가 포함되어 있습니다.
에코시스템에는 주요 Hadoop 프레임워크 외에도 다음이 포함됩니다.
MapReduce 프로그램은 다음과 같이 조직이 빅데이터 분석을 통해 귀중한 인사이트를 얻는 데 도움이 되는 몇 가지 이점을 제공합니다.
복잡한 데이터 처리 작업은 다른 애플리케이션에서 더 빠르게 실행될 수 있지만, MapReduce는 많은 간단한 사용 사례를 효율적으로 처리할 수 있습니다. 다음은 MapReduce의 병렬 처리 방식에 적합한 몇 가지 애플리케이션입니다.
MapReduce 프로그래밍 패러다임은 2004년 Google 컴퓨터 과학자 Jeffery Dean과 Sanjay Ghemawat이 만들었습니다. MapReduce 모델의 목표는 대규모 상용 하드웨어 클러스터에서 대규모 병렬 처리를 통해 대규모 데이터 세트의 변환 및 분석을 간소화하는 것입니다. 또한 프로그래머가 데이터 관리 대신 알고리즘에 집중할 수 있게 하는 것입니다.
Google이 최초의 MapReduce 프레임워크를 도입했지만, Apache Hadoop MapReduce가 가장 널리 사용되고 있습니다.
MapReduce는 빅 데이터 분석을 발전시키는 데 핵심적인 역할을 했지만, 단점도 있습니다. 예를 들어 MapReduce는 일반적으로 데이터가 메모리에 유지되지 않으며, 반복 로직은 MapReduce 앱을 함께 연결해야만 가능합니다. 이러한 요인으로 복잡성이 증가하고 처리 시간이 길어질 수 있습니다.
MapReduce는 여전히 널리 사용되고 있지만(특히 레거시 시스템에서) 많은 조직에서는 빅데이터 애플리케이션을 위해 Apache Spark와 같은 더 빠르거나 더 전문화된 프레임워크로 전환하고 있습니다.
탁월한 고객 및 직원 경험을 제공하기 위해 데이터 사일로를 제거하고, 복잡성을 줄이며, 데이터 품질을 개선해 주는 데이터 전략을 구축하세요.
watsonx.data를 사용하면 오픈, 하이브리드 및 관리형 데이터 저장소를 통해 데이터의 위치와 관계없이 모든 데이터로 분석과 AI를 확장할 수 있습니다.
IBM Consulting을 통해 엔터프라이즈 데이터의 가치를 실현하여 비즈니스 이점을 제공하는 인사이트 중심의 조직을 구축하세요.