반응형
MapReduce란?
Apache Hadoop MapReduce는 방대한 양의 데이터를 처리하는 작업을 작성하기 위한 소프트웨어 프레임워크이다. 입력 데이터는 독립적인 청크로 분할된다. 각 청크는 클러스터의 노드에서 동시에 처리된다. MapReduce 작업은 두 함수로 구성된다.
- Mapper: 입력된 데이터를 소비하고 분석하며(일반적으로 필터 및 정렬 작업) 튜플을 내보낸다.(키-값 쌍)
- Reducer: mapper에서 나온 튜플을 소배하고 매퍼 데이터에서 더 작고 결합된 결과를 생성하는 요약 작업을 수행한다.
분산처리를 하기 좋은 형태로 만들어 처리한다고 생각하면 쉽다.
Spark도 MapReduce처리 방식을 지원한다.
예시를 통한 설명
다음 WordCount 예시를 보면 각 단계가 어떤일을 하는지가 좀 더 잘 이해된다.
Input: 큰 RAW 텍스트 데이터
Input Splits: 분산처리시 노드에 분배하기 위해 데이터 분할
Mapping: mapper에 의해서 key-value 형태로 데이터 처리
Shuffling: 동일한 key로 처리하기 위해 같은 key를 가진 데이터를 모음
Reducer: 사용자가 정의한 방법으로 데이터를 추출하는 작업, 아래 예시에서는 동일한 key(단어)를 가진 row의 숫자를 카운트
간단하게 다시 정리하면
Map: 인풋 데이터를 가공하여 연관성 있는 데이터들로 분류하는 작업
Reduce: map에서 전달된 데이터에서 원하는 데이터를 추출(Extract)하는 작업
반응형
'Computer Science > Bigdata(hdoop, spark, hive)' 카테고리의 다른 글
[PySpark] 연산자 우선순위 이슈 - 'py4j.Py4JException: Method or([class java.lang.Integer]) does not exist' (0) | 2022.07.15 |
---|---|
[spark] YARN spark-submit deadlock (spark job 멈춤현상) (0) | 2020.05.07 |
[Spark/Scala] 스파크, 스칼라 버전확인 (0) | 2020.04.27 |