MapReduce는 HDFS, YARN과 함께 제공되는 Hadoop의 핵심 기술.
매핑은 기본적으로 데이터를 변형시킨다
즉 데이터가 한 줄씩 들어오면 매퍼는 그 데이터를 변형시킨다.
예를 들어 각 사용자가 시청한 영화의 수를 집계하려고 한다면, 키는 사용자의 ID, 값은 사용자가 평가한 영화가 될 것. 일반적인 python dict 자료구조와는 달리 중복된 키가 존재할 수 있음.
이 경우 ID=1의 사용자가 두개 이상의 영화를 평가한 것.
맵핑 단계에서 같은 키값이 나오는 것은 전혀 문제될 것이 없음.
들어오는 데이터에서 필요한 정보를 추출하고 이해할 수 있는 구조로 정리.
모든 입력 줄(input line)마다 매퍼는 중요한 데이터를 추출하고 구조화해한 줄을 출력한다.
'셔플과 정렬' 단계에서 일어나는 일은 각각의 키-값 쌍을 읽어서 고유 키에 짝 지어진 값을 집계. 간단하게 여러개의 중복된 키가 존재한다면 이를 하나로 묶어줌.
Reducer의 역할은 데이터를 집계하는 것.
매퍼는 각 줄을 키-값 쌍으로 변형
'셔플과 정렬'은 각 데이터를 집계해 정렬
리듀서는 이 데이터를 원하는 대로 처리할 수 있죠