개발/Research
Spark, Hadoop
로그뉴
2022. 7. 12. 15:53
Hadoop
- 2006년 4월, 아파치에서 발표한 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈 소스 프레임워크
- map 함수가 모두 종료해야 reduce 함수가 실행됨. → 실시간 처리는 힘듦.
- map: 전체 데이터를 작은 단위로 나눈 청크에 대해 수행할 로직
- reduce: 처리된 데이터를 병합하는 과정
- map 함수의 결과가 디스크에 저장되고, 그걸 reduce 함수가 다시 읽어와야 합니다. 이것이 주는 성능상의 손실이 큼
- 따라서, 빅데이터 기반의 배치성 통계작업에 주로 사용됨.
- 맵리듀스 잡(작업)의 결과물은 hdfs에 저장해야만 하는데 hdfs는 분산파일시스템이기 때문에 저장과 로드에 상당한 비용(시간/자원소모)이 듦.

- 요약
- 저장은 HDFS에 저장하고,
- 분석작업은 맵리듀스를 통해 수행하고,
- 이러한 작업들이 사용하는 자원의 관리는 YARN이 맡는다.
참고
Spark
- 2009년 발표, MapReduce 기능에서 Map함수가 전부 종료되지 않았더라도 Map의 결과를 스트리밍하는 방식
- 하둡과 다르게 데이터를 디스크가 아닌 메모리에 저장한다.
- 작업이 끝나면 이를 RDD라는 분산 메모리에 저장
- 인메모리 데이터 엔진을 통해 초기 맵리듀스의 성능상 한계를 크게 극복
- 실제로 Spark의 성능은 Hadoop의 10배에 달하는 속도 우위를 보임

참고