mapreducemapreduce 시작하기


비고

이 섹션에서는 mapreduce가 무엇인지, 왜 개발자가 그것을 사용하고자하는지에 대한 개요를 제공합니다.

또한 mapreduce 내의 큰 주제를 언급하고 관련 주제에 링크해야합니다. mapreduce에 대한 문서가 새로운 것이므로 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.

설치 또는 설정

Mapreduce는 Hadoop의 일부입니다. 따라서 Apache Hadoop (또는 Hadoop 배포판)이 설치되면 MR이 자동으로 설치됩니다.

MapReduce는 HDFS (Hadoop 분산 파일 시스템)에 비해 데이터 처리 프레임 워크입니다. MR 작업은 Java, Python, Scala, R 등을 사용하여 작성 될 수 있습니다.

mapreduce는 무엇을하고 어떻게합니까?

Mapreduce는 매우 많은 양의 데이터를 처리하는 프로그래밍 모델입니다.

전통적인 'HPC'(고성능 컴퓨팅)은 고도로 연결된 컴퓨터 세트 (매우 빠른 네트워킹, 공유 스토리지, 공유 메모리에 대한 빠른 액세스 등)를 사용하여 비교적 큰 용량의 데이터에 대한 대규모 계산 속도를 높여 컴퓨팅 문제를 처리합니다. 일반적으로 서로 다른 데이터에 액세스 할 수있는 계산이 필요합니다. 전형적인 예는 일기 예보입니다.

한편, Mapreduce는 엄청난 양의 데이터에 대해 상대적으로 작고 독립적 인 계산을 처리하는 데 탁월합니다. 이를 가능하게하기 위해 데이터는 많은 양의 컴퓨터에 분산되어 있으며 원하는 계산은 데이터의 각 비트별로 독립적으로 수행 할 수있는 단계 ( '맵'단계)로 분할됩니다. 그런 다음 이러한 독립적 인 계산의 결과를 수집하고 이러한 개별 결과를 모두 최종 결과 ( '감소'단계)로 결합하기 위해 계산의 두 번째 부분을 수행합니다.


예 : 투표 집계

셀 수가 많은 매우 큰 투표 수가 있다고 상상해보십시오 (예 : 스캔 한 이미지에서 어떤 상자를 체크했는지 확인하는 등).

이 경우 mapreduce 구현은 다음을 수행합니다.

1 단계 : '확산'

사용 가능한 컴퓨터에서 처리 할 이미지를 전파하십시오.

2 단계 : '지도'

각 컴퓨터에서 각 이미지에 대해 :

  • 이 컴퓨터에 복사 된 이미지 1 장을 입력으로 가져옵니다.
  • 어느 상자가 체크되었는지 알아 내라.
  • 투표 된 항목의 번호 (또는 코드 또는 이름)를 출력하십시오.

컴퓨터가 작업 할 이미지가 하나 나올 때 바로 작업을 시작할 수 있습니다. 이러한 모든 컴퓨터가 상호 작용하여 작업을 수행 할 필요가 없으므로 신속하게 상호 연결되거나 메모리를 공유하거나 디스크 공간을 공유 할 필요가 없습니다.

3 단계 : '모임'

이 모든 출력을 1 대의 컴퓨터에서 수집하십시오.

4 단계 : '축소'

각 숫자 (또는 코드 또는 이름)에 대한 투표 수를 세십시오.

이 아주 기본적인 예제는 또한 더 많은 최적화가 가능한 방법을 강조합니다. 이 경우 감소 단계 자체가 각 컴퓨터에서 부분적으로 명확하게 수행 될 수 있으며 중앙 컴퓨터에서 최종 축소 작업을 수행 할 수 있습니다. 그러면 reduce 단계를 실행하는 한 대의 컴퓨터에서 작업량이 줄어들고 네트워크를 통해 전송해야하는 데이터의 양이 제한됩니다.


예 : 득표 수 - 최적화 됨 (결합 자 사용)

1 단계 : '확산'

이전과 동일 : 이미지를 확산하여 사용 가능한 컴퓨터에서 처리합니다.

2 단계 : '지도'

이전과 동일 : 각 컴퓨터에서 각 이미지에 대해 :

  • 이 컴퓨터에 복사 된 이미지 1 장을 입력으로 가져옵니다.
  • 어느 상자가 체크되었는지 알아 내라.
  • 투표 된 항목의 번호 (또는 코드 또는 이름)를 출력하십시오.

3 단계 : 로컬에서 '모으기'

1 컴퓨터의 모든 출력을 컴퓨터 자체에 모으십시오.

4 단계 : 로컬에서 '줄이기'

지역 결과에 각 숫자 (또는 코드 또는 이름)의 득표 수를 세고 이들 카운트를 출력하십시오.

5 단계 : 전 세계적으로 '모으기'

1 대의 컴퓨터에서 로컬 감소의 모든 출력을 수집하십시오.

6 단계 : 전 세계적으로 '감소'

각 숫자 (또는 코드 또는 이름)의 투표 수를 지역적으로 합산하십시오.


3 단계에서 다음과 같은 경우에 모든 결과를 기다릴 필요없습니다 .

  • 이것이 컴퓨터의 스토리지 / 메모리와 같은 로컬 리소스에 너무 많은 경우
  • 컴퓨터가 고장 났을 때 다시 실행해야하는 작업의 비용이 모든 지역 결과를 기다리는데 큰 것으로 간주되면
  • 네트워크가 중간 결과를 자유롭게 전송할 수 있다면

로컬 수집과 로컬 감소는 지금까지 로컬 컴퓨터에서 생성 된 결과에서 수행 할 수 있으며 언제든지 수행 할 수 있습니다.

로컬 축소 단계를 결합기 단계라고합니다. 이것은 성능을 향상시키는 데 사용되는 선택적 단계입니다.