MapReduce 아키텍처 설명, 알아야 할 모든 것
게시 됨: 2020-02-27기술의 발전으로 모든 비즈니스는 온라인 데이터를 저장하고 처리하기를 원합니다. 이 요구 사항은 기업의 온라인 및 오프라인 활동에서 빅 데이터를 수집해야 하는 새로운 요구를 불러옵니다. 수집된 데이터는 효율적으로 저장되고 처리되어야 합니다.
Hadoop은 빅 데이터를 처리하는 가장 널리 사용되는 프레임워크 중 하나이며 Hadoop을 가장 잘 지원하는 블록 중 하나는 MapReduce입니다. 데이터 과학 분야에서 데이터 분석가로서의 경력을 찾고 있다면 이 인기 있고 인기 있는 프로그래밍 언어에 대해 알고 있어야 합니다.
목차
데이터 분석에서 MapReduce의 중요성
MapReduce는 광범위한 스케일 데이터를 처리하는 반면 Hadoop은 C++, Python, Ruby on Rails, Java 및 기타 여러 언어를 포함하여 여러 프로그래밍 언어로 새겨진 연속적인 MapReduce 프로그램을 수행합니다. MapReduce의 특성은 병렬이므로 여러 시스템에서 클러스터 형태로 사용할 수 있는 방대한 양의 데이터를 프로그래밍하는 데 매우 유용합니다.
맵리듀스 프로그래밍이란?
MapReduce는 분산 컴퓨팅을 위한 프로그램 모듈입니다. Java에서 두 단계로 작동합니다. 즉,
- 지도 단계
- 위상 감소
MapReduce를 이해하려면 모든 코더와 프로그래머가 이 두 단계와 기능을 이해해야 합니다.
1. 지도 단계
지도 단계에서 데이터 정보는 값과 키의 두 가지 주요 부분으로 나뉩니다. 값은 딜링 아웃 단계에서만 기록되고 키는 처리 단계에서 작성됩니다. 클라이언트가 Hadoop 프레임워크에 데이터의 개입을 포기할 때마다 작업 추적기가 작업을 할당하고 데이터 정보가 여러 부분으로 분할됩니다.

그런 다음 정보는 특성에 따라 구분됩니다. 레코드 판독기는 일반적으로 (KV) 쌍으로 알려진 키-값 쌍으로 분할된 정보를 전송합니다. KV는 작업 추적기 내부의 데이터를 다시 처리하는 맵 단계의 원래 입력 데이터 형식입니다. 양식의 정보는 응용 프로그램에 따라 다릅니다. 따라서 그에 따라 암호화하려면 입력 데이터를 최적화해야 합니다.
텍스트 형식의 정보를 가져오면 바이트 오프셋인 키를 찾을 수 있습니다. 이 맵 단계는 또한 결합기 및 파티션 모듈을 사용하여 비정상적인 데이터 작업을 수행하도록 프로그램을 코딩합니다. 데이터 현지화는 데이터의 매퍼 단위에서만 발생합니다.
- 지도 단계의 결합기 모듈
Map 단계에서 결합기 모듈은 미니 감속기라고도 합니다. 매퍼가 방대한 양의 데이터를 처리할 때 고대역폭을 정복하려면 결합기가 필요합니다. 상위 대역폭 문제를 해결하려면 맵 단계에서 결합기 논리를 사용하여 우수한 출력 결과를 얻어야 합니다.
- 맵 단계의 파티션 모듈
Combiner 모듈과 마찬가지로 파티션 세그먼트는 MapReduce 프로그래밍 언어에 중요한 측면을 제공하며, 이는 궁극적으로 Hadoop 프레임워크에 영향을 미칩니다. 파티션 세그먼트는 환원 과정에서 생성되는 압력을 줄여 우수한 출력을 제공합니다. 다양한 상황에 따라 데이터에 따라 파티션을 사용자 정의할 수도 있습니다.
프로세스 중에 기본 파티션을 사용할 수도 있습니다. 게다가, 컴퓨터 운영자가 감소 및 매핑 단계 방법을 사용하여 데이터를 여러 수치로 나누는 데 도움이 되는 정적 및 동적 파티션이 있습니다. 비즈니스 요구 사항에 따라 이러한 파티션을 설계하고 사용자 지정할 수 있습니다. 이 파티션 모듈은 MapReduce 아키텍처의 위의 두 프로세스 간에 데이터를 전송하는 데 유용합니다.
2. 위상 감소
맵 단계가 처리된 후 조직화되고 뒤섞인 데이터는 Reduce 단계의 입력이 됩니다. 이 단계에서 모든 정렬된 데이터가 결합되고 실제 키-값 쌍이 HDFS 프레임워크에서 고려됩니다. 레코드 작성자는 Reducer 단계에서 HDFS 프레임워크까지의 통계를 기록합니다. 이 단계는 검색 및 매핑의 선택 사항이지만 성능 향상에 중요한 역할을 합니다.

읽기: 빅 데이터를 위한 상위 10가지 Hadoop 도구
이 단계는 지도 단계에서 제공된 데이터에 대한 실제 프로세스를 시작합니다. Map 단계는 part-r-0001과 같은 감속기 결과를 제공합니다. 또한 사용자가 추적하려는 각 작업에 대한 일련의 숫자를 제공해야 합니다. 특정 상황의 이름을 배치할 수 있는 많은 우선 순위를 설정할 수도 있습니다.
이 단계에서는 데이터를 실행하기 위한 이론적인 실행이 필수적입니다. 여러 리듀서가 동일한 데이터를 처리하고 첫 번째 리듀서가 느리게 처리하는 경우 작업 추적기는 프로세스를 가속화하기 위해 다음으로 사용 가능한 리듀서에 처리를 할당할 수 있습니다. 사용 가능한 감속기에 할당하는 이러한 종류의 작업을 FIFO, 즉 선입선출(First In First Out)이라고 합니다.
MapReduce 아키텍처의 프로세스 이해
다음은 Hadoop 프레임워크에서 MapReduce 아키텍처로 작업할 때 염두에 두어야 할 사항입니다.
맵 단계 작업 생성 : MapReduce 아키텍처에서 첫 번째 맵 단계 작업이 생성되어 데이터를 나누고 맵 모듈을 실행하여 데이터를 기록합니다.
데이터 분할 : 결합기와 파티션 모듈은 데이터가 많은 분리를 처리하는 데 도움이 됩니다. 데이터의 전체 입력을 처리하는 데 필요한 시간은 분할을 처리하는 데 필요한 시간과 같을 때 더 많습니다. 더 작은 분리는 병렬 방식으로 더 나은 처리 및 데이터 균형을 제공합니다.
더 읽어보기: Hadoop의 기능 및 애플리케이션
정확한 분할 : 크기가 너무 작은 분할은 전체 태스크를 수행하는 시간을 제어하기 위해 분할 및 Map 태스크 생성 존재를 처리하는 부하를 증가시키기 때문에 Map 단계에서 이상적이지 않습니다.
평균 분할 크기 고려 : 이상적으로 분할 크기는 64MB이어야 하며 균일한 분할 크기를 생성하기 위해 기본값으로 설정해야 합니다. 분할된 크기는 HDFS 블록과 동일해야 합니다.
HDFS 모듈 구현 : Map 단계 출력은 HDFS 모듈이 아닌 개별 데이터 단위의 로컬 디스크에 쓰기 작업을 진행합니다. HDFS에서 흔히 발생하는 반복을 피하기 위해서는 HDFS가 아닌 다른 로컬 드라이브를 선택해야 합니다.
중복 방지 : Map 단계는 데이터를 처리하여 Reduce 단계에 공급하고 결과를 제공하는 중심 부분입니다. 작업이 완료되면 맵 출력을 삭제하여 데이터 복제를 방지할 수 있습니다.
리듀스 페이즈 작업 제공 결과 : Map 페이즈의 결과가 리듀스 페이즈에 연속적으로 제공됩니다. 주문에 따라 생산이 결합되어 사용자 정의 축소 기능으로 처리됩니다.

로컬 스토리지 : Map 방식과는 별도로 Reduce 부분의 데이터는 HDFS에 보관되며 이는 로컬 데이터 단위에 저장되는 첫 번째 복사본이기도 합니다.
결론
MapReduce 프레임워크는 Hadoop 구조에서 사용할 수 있는 방대한 데이터를 처리하는 복잡한 프로세스를 단순화합니다. Hadoop 1.0과 비교할 때 Hadoop 2.0의 MapReduce 프로그래밍 언어에는 많은 중요한 변경 사항이 있습니다.
MapReduce 프로그래밍 언어를 배울 수 있는 많은 과정이 있습니다. upGrad에서 빅 데이터 엔지니어링 및 빅 데이터 분석 프로그램과 같은 대학원 프로그램을 이용하여 프로그래밍 분야에서 유익한 경력을 쌓을 수 있습니다. 전문가에게 문의하여 프로그램에 대해 더 자세히 알아보고 더 나은 통찰력을 얻으십시오.
빅 데이터에 대해 더 알고 싶다면 PG 디플로마 빅 데이터 소프트웨어 개발 전문화 프로그램을 확인하세요. 이 프로그램은 실무 전문가를 위해 설계되었으며 7개 이상의 사례 연구 및 프로젝트를 제공하고 14개 프로그래밍 언어 및 도구, 실용적인 실습을 다룹니다. 워크샵, 400시간 이상의 엄격한 학습 및 최고의 기업과의 취업 지원.
세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정 을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.