MapReduce - 데이터 처리에 더 많은 에너지가 필요할 때
MapReduce란 무엇입니까?
MapReduce는 컴퓨터 클러스터에서 병렬 분산 알고리즘을 사용하여 빅데이터 세트를 처리하고 생성하는 프로그래밍 예입니다.일반적으로MapReduce 프로그램은 필터와 정렬을 실행하는 맵 방법과 맵 함수의 출력에 대한 요약 작업을 수행하는 Reduce 방법으로 구성됩니다. (본문 뒤에 맵과 Reduce를 더욱 깊이 있게 논의할 것입니다.)MapReduce 배후의 기본 사상은
divide and conquer
방법과 매우 비슷하다.사실상 이 데이터 처리 프레임워크의 관건적인 공헌은 매핑과 축소 기능이 아니라 실행 엔진 최적화를 통해 이루어진 각종 응용 프로그램의 신축성과 용착성이다.그것은 어떻게 일합니까?
앞에서 말한 바와 같이 MapReduce의 주요 기능은 맵과 Reduce이다.그것들은 하나하나 측정되었다.
Map 함수는 디스크의 입력을 (키, 값) 쌍으로 처리하고 다른 중간(키, 값) 쌍을 출력으로 생성합니다.먼저 입력 데이터를 더 작은 블록으로 분할한 다음, 각 블록을 맵에 분배하여 처리합니다.MapReduce 프레임워크는 입력 데이터와 각 맵퍼 서버에서 사용할 수 있는 메모리 블록에 따라 맵의 수량과 블록 크기를 계산합니다.
Reduce 함수는 입력을 (키, 값) 쌍으로 하고 출력(키, 값) 쌍을 생성합니다.모든 맵이 처리되면 프레임워크는 결과를 씻고 정렬한 다음 복원기에 전달합니다.맵을 계속 처리할 때 복원 프로그램을 시작할 수 없습니다.동일한 키가 있는 모든 맵 출력 값은 키의 값을 모으는 감속기에 지정됩니다.
Mapper와 Reducer는 각각 Map과 Reduce 기능을 실행하는 MapReduce 프레임워크에서 관리하는 서버입니다.이 서버들이 같든 다르든 중요하지 않다.
MapReduce 프레임워크의 작동 원리를 개념적으로 요약하기 위해 맵과 Reduce 함수는 사용자가 제공하며 다음과 같은 연관 유형이 있습니다.
map (k1, v1) -> list(k2, v2)
reduce (k2, list(v2)) -> list(v2)
기타 MapReduce 프로세스
Map과 Reduce 외에 사용자가 제어할 수도 있고 MapReduce 프레임워크에서 관리할 수도 있는 두 가지 중간 절차가 있습니다.
합병은 선택할 수 있는 과정이다.병합기는 모든 맵 서버에서 단독으로 실행되는 축소기로서, 모든 맵의 데이터를 간소화한 다음에 하류로 전달한다. 처리할 데이터가 비교적 적기 때문에 카드를 씻고 정렬하기 쉽다.일반적으로 감속기 자체는 조합기로 사용할 수 있지만 필요하면 독립된 조합기를 실현할 수도 있다.
섹션은 맵 프로그램이 생성한 (키, 값) 쌍을 다른 그룹 (키, 값) 쌍으로 바꾸어 Reducer에 전송하는 과정입니다.그것은 데이터를 어떻게 특정한 감속기에 보여주고 분배할 것인지를 결정한다.
예.
MapReduce의 예시적인 예로, 우리는 대량의 문서에서 단어의 출현 횟수를 계산하는 문제를 고려할 것이다.MapReduce에서 이 기능을 수행하는 사용자 위조 코드는 다음과 같습니다.
map(String key, String value):
// key: document name
// value: document contents
for each word W in value:
EmitIntermediate(w, "1");
reduce(String key, List values):
// key: a word
// values: a list of counts
int result = 0;
for each v in values:
result += parseInt(v)
EmitIntermediate(toString(result));
map 함수는 모든 단어에 관련된 출현 횟수를 보냅니다. (이 예에서 "1"만 보냅니다.)reduce 함수는 특정 단어가 보내는 모든 계수를 추가합니다.이 두 함수 구현 외에 사용자는 입력과 출력 파일의 이름과 선택할 수 있는 tunning 파라미터를 포함하는 설정 대상을 지정해야 합니다. 이로써 MapReduce 프레임워크는 데이터 처리를 시작할 수 있습니다.기타 예
참조 자료:
Reference
이 문제에 관하여(MapReduce - 데이터 처리에 더 많은 에너지가 필요할 때), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aiflowltd/mapreduce-when-you-need-more-juice-to-process-your-data-5b4p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)