MapReduce?
> 하둡에서 사용되는 분산 컴퓨팅 프레임워크
> 입력 데이터를 정해진 크기로 나누어 여러 개의 작업을 생성하고 병렬로 수행함
> 일부 작업이 실패하더라도 자동으로 다시 수행함
> 그러므로 입력 데이터의 크기와 상관 없이 동일한 코드로 작업 가능함
MapReduce 작업 구조
Map
> 입력을 정해진 크기로 나눈 후 사용자가 정의한 함수를 실행함
> 입력 데이터를 정렬하거나 분류함
> key-value 형태의 데이터가 생성됨
> Map 작업의 결과물은 작업이 수행된 장비의 로컬 디스크에 저장됨
Reduce
> Map의 결과를 최종적으로 병합하여, 사용자가 정의한 함수를 실행시킴
> 결과를 로컬이 아닌 분산디비인 HDFS에 저장함
Shuffle & Sort
> Map작업의 결과를 Reduce작업으로 넘겨주기 전에 정렬해줌
> Reduce 작업이 효율적으로 수행될 수 있도록 도와줌 (Map의 결과를 재배치하여)
> Reduce작업을 위한 것이기 때문에 Reduce 작업이 없다면 shffle & sort 작업은 수행되지 않음
> ex. 같은 키끼리 묶어줘서 다음 reduce 단계에서 작업량을 줄여줌
장점
> 분산시스템 구조를 몰라도 병렬화 방식을 통한 분산처리를 할 수 있음
> 중간 작업이 실패해도 자동으로 다시 수행함
> 리소스가 부족해도 노드를 늘려 스케일아웃이 용이함
단점
> 대용량 배치 작업을 위한 프레임워크라 실시간 처리에는 적합하지 않음
> 한번의 프로세스를 진행할 때 여러 단계를 거쳐야하며 중간 결과물을 disk에 쓰기 때문에 스트리밍 작업에 적합하지 않음
> 맵과 리듀스라는 정해져있는 작업 형태가 있기 때문에 단순한 데이터만 처리 가능함
'츄Log > 끄적끄적' 카테고리의 다른 글
뇌가 뜨거워지는 멀티스레드 프로그램에서 좀비스레드 (1) | 2024.06.15 |
---|---|
Hadoop 에코시스템 먹방 -4. Spark & Yarn (1) | 2024.06.11 |
Hadoop 에코시스템 먹방 -2. HDFS (0) | 2024.06.11 |
Hadoop 에코시스템 먹방 -1. Hadoop 개요 (0) | 2024.06.11 |
CompletableFuture runAsync/supplyAsync/get (0) | 2024.03.02 |