본문 바로가기
IT/자연어처리

[Hadoop] MapReduce, Apache Spark

by IT손흥민 2021. 12. 15.

MapReduce

맵리듀스 과정은 다음과 같다.

1. 문자열 데이터를 라인별 나눈다
2. 라입렬로 문자열 입력 (key, value)
3. 같은 key를 가지는 데이터끼리 분류
4. key별로 빈도수를 합산해서 출력
5. 저장

이러한 맵리듀스의 단점이 있었다.

MapReduce 단점

맵리듀스는 데이터를 분산하여 연산하고 다시 합치는 기술이기에 여러번의 디스크 입출력이 발생되며 성능이 저하된다.
DBMS와 비교하면 낮은 성능과 불편한 스키마 질의가 단점이다.

이러한 단점을 보완해서 나온 Apache Spark도 있다.

Apache Spark

맵리듀스의 입출력 방식을 인메모리로 바꾸고 맵리듀스 보다는 빠른 속도를 가진다.
머신러닝(MLlib)도 지원하고 있다.
하지만 스파크 같은 경우는 분산파일 시스템을 가지고 있지 않기에 외부파일 시스템(하둡)을 연동해서 사용해야한다.

 

스파크 같은 경우는 하둡의 코어 프로젝트가 아니기에 내가 원하는 방향과는 맞지 않는다는 생각이 든다. 또한 맵리듀스를 사용하는 것도 좋지않은 성능으로 현재 내가 사용하기는 어려울 것으로 보인다.

댓글