MapReduce MapReduce는 HDFS, YARN과 함께 제공되는 Hadoop의 핵심 기술. Hadoop에 내재된 기능이며 클러스터에 데이터의 처리를 분배. MapReduce는 데이터를 파티션으로 나눠서 클러스터에 걸쳐 병렬 처리되도록 한다 Data Mapper 매핑은 기본적으로 데이터를 변형시킨다 즉 데이터가 한 줄씩 들어오면 매퍼는 그 데이터를 변형시킨다. 키-값 쌍으로 전환 > 예를 들어 각 사용자가 시청한 영화의 수를 집계하려고 한다면, 키는 사용자의 ID, 값은 사용자가 평가한 영화가 될 것. 일반적인 python dict 자료구조와는 달리 중복된 키가 존재할 수 있음. 이 경우 ID=1의 사용자가 두개 이상의 영화를 평가한 것. 맵핑 단계에서 같은 키값이 나오는 것은 전혀 문제될 것이 없음. 들어오는 데이터에서 필요한 정보를 추출하고 이해할 수 있는 구조로 정리. 모든 입력 줄(input line)마다 매퍼는 중요한 데이터를 추출하고
HDFS > 빅데이터를 전체 클러스터에 분산해 안정적으로 저장하여 애플리케이션이 그 데이터를 신속하게 액세스해 분석할 수 있게함. HDFS는 대용량 파일들을 다루기 위해 만들어짐. 대용량 파일들을 작은 조각으로 나누어 클러스터 전체에 걸쳐 분산시키는데 최적화되어있다. 대용량 파일 즉 빅데이터를 '데이터 블록'으로 나눔. 기본값은 128MB 혹은 그 이하 대용량 파일을 블록으로 나눔으로써 더 이상 하드 드라이브의 용량에 제한되지 않게한다. HDFS는 이 대용량 파일을 분산해서 처리. 대용량 파일을 쪼개 여러 컴퓨터에 걸쳐 저장했다면 각 컴퓨터는 자기에게 저장된 데이터 블록을 동시에 처리할 수 있게된다. 데이터를 효율적으로 엑세스할 수 있도록 데이터 블록을 처리하는 컴퓨터가 해당 블록이 저장된 곳이랑 가까운 거리에 있도록 조정함. 단 하나의 블록만 저장하지 않는다. 모든 블록마다 두 개 이상의 복사본을 저장. 어