Hadoop의 MapReduce: 단계, 입력 및 출력, 기능 및 이점

게시 됨: 2020-12-24

Hadoop MapReduce는 대량의 데이터를 처리하는 애플리케이션을 작성하는 데 사용되는 프로그래밍 모델 및 소프트웨어 프레임워크입니다. MapReduce 프로그램에는 Map과 Reduce의 두 단계가 있습니다.

맵 작업에는 데이터 세트를 가져와 다른 데이터 세트로 변환하여 데이터를 분할하고 매핑하는 작업이 포함됩니다. 여기서 개별 요소는 키/값 쌍과 같은 튜플로 분할됩니다. 그 후 Reduce 작업은 데이터를 섞고 줄입니다. 즉, 키를 기반으로 데이터 튜플을 결합하고 그에 따라 키 값을 수정합니다.

Hadoop 프레임워크에서 MapReduce 모델은 데이터 처리의 핵심 구성 요소입니다. 이 모델을 사용하면 구성을 변경하기만 하면 클러스터에서 수백, 수천 및 더 많은 시스템을 실행하도록 애플리케이션을 확장하는 것이 매우 쉽습니다. 이것은 또한 클라우드 컴퓨팅에서 모델의 프로그램이 본질적으로 병렬이기 때문입니다. Hadoop은 Java, Ruby, Python 및 C++와 같은 다양한 언어로 MapReduce를 실행할 수 있는 기능이 있습니다. 맵리듀스 아키텍처에 대해 더 읽어보세요.

목차

입력 및 출력

MapReduce 모델은 <key, value> 쌍에서 작동합니다. 작업에 대한 입력을 <key, value> 쌍의 집합으로 보고 작업의 출력으로 다른 <key, value> 쌍 집합을 생성합니다. 데이터 입력은 이 프레임워크의 두 가지 클래스, 즉 InputFormat 및 RecordReader에서 지원됩니다.

첫 번째는 지도 작업을 위해 입력 데이터를 분할하는 방법을 결정하기 위해 참조하고 후자는 입력에서 데이터를 읽습니다. 데이터 출력의 경우 OutputFormat 및 RecordWriter의 두 가지 클래스도 있습니다. 첫 번째 클래스는 데이터 싱크 속성의 기본 유효성 검사를 수행하고 두 번째 클래스는 각 리듀서 출력을 데이터 싱크에 쓰는 데 사용됩니다.

MapReduce의 단계는 무엇입니까?

MapReduce에서 데이터는 다음 단계를 거칩니다.

입력 분할: MapReduce 모델의 입력은 입력 분할이라고 하는 작은 고정 크기 부분으로 나뉩니다. 입력의 이 부분은 단일 맵에서 사용됩니다. 입력 데이터는 일반적으로 HDFS에 저장된 파일 또는 디렉토리입니다.

매핑: 각 분할의 데이터가 매퍼 함수에 한 줄씩 전달되어 처리하고 출력 값을 생성하는 map-reduce 프로그램 실행의 첫 번째 단계입니다.

셔플링: 관련 레코드가 출력에서 ​​통합되는 매핑의 출력 단계의 일부입니다. 병합 및 정렬로 구성됩니다. 따라서 동일한 키를 가진 모든 키-값 쌍이 결합됩니다. 정렬에서 병합 단계의 입력을 가져와 정렬합니다. 출력을 정렬하여 키-값 쌍을 반환합니다.

감소: 셔플 단계의 모든 값이 결합되고 단일 출력 값이 반환됩니다. 따라서 전체 데이터 세트를 요약합니다.

읽어보기: Mapreduce 인터뷰 질문 및 답변

MapReduce는 어떻게 작동합니까?

Hadoop은 작업을 분할 및 매핑을 포함하는 매핑 작업과 셔플링 및 감소를 포함하는 축소 작업의 두 부분으로 나눕니다. 이는 위 섹션의 단계에서 언급되었습니다. 이러한 작업의 실행은 JobTracker 및 다중 작업 추적기라는 두 엔터티에 의해 제어됩니다.

실행을 위해 제출되는 모든 작업에는 NameNode에 상주하는 JobTracker와 DataNode에 상주하는 여러 작업 추적기가 있습니다. 작업은 클러스터의 여러 데이터 노드에서 실행되는 여러 작업으로 나뉩니다. JobTracker는 다양한 데이터 노드에서 실행할 작업을 예약하여 활동을 조정합니다.

작업 추적기는 개별 작업의 실행을 돌봅니다. 또한 진행률 보고서를 JobTracker로 보냅니다. 주기적으로 JobTracker에 신호를 보내 시스템의 현재 상태를 알립니다. 작업 실패가 발생하면 JobTracker는 다른 작업 추적기에서 작업을 다시 예약합니다.

맵리듀스의 장점

이 모델을 사용하는 응용 프로그램에는 여러 가지 이점이 있습니다. 이것들은

  • – 빅데이터를 쉽게 다룰 수 있다.
  • – 데이터 세트를 병렬로 처리할 수 있습니다.
  • – 정형, 비정형, 반정형 등 모든 유형의 데이터를 쉽게 처리할 수 있습니다.
  • – 높은 확장성을 제공합니다.
  • – 단어의 출현 횟수를 계산하는 것은 쉽고 이러한 응용 프로그램은 방대한 데이터 수집을 할 수 있습니다.
  • – 대규모 응답자 샘플에 빠르게 액세스할 수 있습니다.
  • – 데이터 분석에서 일반 도구를 사용하여 도구를 검색할 수 있습니다.
  • – 로드 밸런싱 시간은 대규모 클러스터에서 제공됩니다.
  • – 사용자의 위치, 상황 등의 컨텍스트를 추출하는 과정이 용이합니다.
  • – 이러한 응용 프로그램에 좋은 일반화 성능 및 수렴이 제공됩니다.

필독: Mapreduce 대 Apache Spark

결론

MapReduce에 대해서는 Hadoop에서 자세히 설명했습니다. 또한 도입부에서 Map 및 Reduce의 정의와 함께 프레임워크에 대한 간략한 설명을 제공했습니다. 이 모델에서 사용된 다양한 용어의 정의는 입력 및 출력의 세부 사항과 함께 제공되었습니다.

MapReduce 프레임워크와 관련된 다양한 단계에 대한 자세한 설명은 작업이 어떻게 구성되는지 자세히 설명합니다. 응용 프로그램에 MapReduce를 사용할 때의 이점 목록은 사용 및 관련성에 대한 명확한 그림을 제공합니다.

빅 데이터에 대해 더 알고 싶다면 PG 디플로마 빅 데이터 소프트웨어 개발 전문화 프로그램을 확인하십시오. 이 프로그램은 실무 전문가를 위해 설계되었으며 7개 이상의 사례 연구 및 프로젝트를 제공하고 14개 프로그래밍 언어 및 도구, 실용적인 실습을 다룹니다. 워크샵, 400시간 이상의 엄격한 학습 및 최고의 기업과의 취업 지원.

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

데이터 주도 기술 혁명을 주도하다

IIT Bangalore의 빅 데이터 고급 인증 프로그램