1️⃣ 대용량 데이터 분석 기법(맵리듀스, 스파크)
✨ 맵리듀스 (MapReduce)
- 구글에서 빅데이터 처리를 위해 만든 분산 환경의 병렬처리 프로그래밍 모델
- 데이터가 너무 크면 하나의 서버에서 처리하기 어렵기 때문에 여러 서버에 나눠서 처리
💡 맵 리듀스의 두가지 핵심 함수
- 맵(Map) : 데이터를 키(Key) 와 값(Value) 으로 변환하고 분류
- 리듀스(Reduce) : 맵 결과를 그룹화하고, 중복을 줄이며 최종 결과 생성
입력 데이터: ["사과", "사과", "바나나", "사과"]
맵(Map) → [("사과", 1), ("사과", 1), ("바나나", 1), ("사과", 1)]
셔플 → ("사과", [1, 1, 1]), ("바나나", [1])
리듀스(Reduce) → [("사과", 3), ("바나나", 1)]
📍 맵 리듀스 프로세스 요약
데이터 입력 → 맵(Map) → 셔플링(Shuffle) → 리듀스(Reduce) → 결과 출력
✅ 맵 리듀스 장단점
| 장점 | 단점 |
|---|
| 단순하고 명확한 구조 | 고정된 데이터에 적합, 유연성 부족 |
| 높은 확장성 및 안정성 | DBMS 대비 성능이 낮을 수 있음 |
2️⃣ 아파치 스파크(Apache Spark)
- 하둡과 비슷하지만, 메모리 내에서 빠르게 처리할 수 있도록 만들어진 프레임워크
- 실시간 데이터 분석이나 반복적인 계산, 머신러닝에 유리한 프레임워크
✨ 스파크 특징
- 메모리 내 연산으로 하둡 맵리듀스 보다 10-100 배 빠른 성능
- 다양한 머신러닝 및 스트리밍 데이터 처리 지원
- RDD(Resilient Distributed Dataset) 라는 데이터 개념 사용
✨ RDD 개념
- 여러 서버에 분산된 가상의 데이터 형태
- 오류 복구 기능 내장 (실패 시 자동 복구 가능)
- Lazy Execution(게으른 실행) : 꼭 필요한 작업 시점에서 실제로 데이터를 처리하여 효율성 극대화
✨ RDD 연산 유형
- 트랜스포메이션(Transformation) : 새로운 RDD 를 생성하는 명령 (map, filter 등)
- 액션(Action) : 최종 결과를 생성하는 명령 (collect, count 등)
3️⃣ 하둡(Hadoop) 🆚 스파크(Spark) 비교
| 구분 | 하둡 (Hadoop) | 스파크 (Spark) |
|---|
| 처리 방식 | 디스크 기반 저장 및 처리 (HDFS) | 메모리 기반 빠른 처리 |
| 데이터 처리 속도 | 상대적으로 느림 | 매우 빠름(메모리 기반 처리) |
| 주요 용도 | 배치 처리 | 실시간 및 반복 계산, 머신 러닝 |
| 저장 시스템 | HDFS(자체 파일 시스템) 보유 | 별도 저장 시스템 필요 |
| 장애 대응 | 디스크에 기록하여 복구 | RDD 기반 복구 |
4️⃣ 데이터 전처리
- 데이터를 분석하기 전에 분석에 적합한 형태로 정제 및 변환 하는 과정
- 숫자 변환, 불필요한 데이터 제거, 결측치 처리 등
✨ 데이터 전처리 과정
- 결측치 처리 (빈 값 채우기 등)
- 이상치(outlier) 제거 및 조정
- 데이터 정규화(normalization) 및 표준화(standardization)
- 범주형 데이터 처리 (원-핫 인코딩 등)
🚀 핵심 정리
| 항목 | 핵심 내용 | 예시 |
|---|
| 맵리듀스 | 분산 처리 방식. 맵과 리듀스 단계로 데이터 처리 | 단어 개수 세기 |
| 스파크 | 메모리 내에서 빠른 데이터 처리. RDD 개념 사용 | 실시간 데이터 처리, 머신러닝 |
| RDD | 스파크의 분산형 데이터 구조 | 여러 서버에서의 데이터 자동 복구 |
| 데이터 전처리 | 분석 전에 데이터를 정리하고 변환하는 과정 | 결측치 채우기, 데이터 정규화 |