15분
이번 주 배운 것을 총동원하는 시간
Day 5: 대용량 로그 분석 파이프라인
이번 주 배운 것을 총동원하는 시간
Apache Spark: 대용량 데이터 처리의 시작 > Day 5: 대용량 로그 분석 파이프라인
학습 목표
프로젝트 요구사항을 이해한다 실무와 유사한 데이터 파이프라인을 경험한다
프로젝트: 대용량 웹 로그 분석 파이프라인
이번 주에 배운 모든 것을 활용해서 실제 운영 환경에서 볼 수 있는 로그 분석 파이프라인을 만듭니다.
시나리오
"우리 서비스의 지난달 로그 분석해줘. 트래픽 패턴, 에러율, 사용자 행동 분석 필요해. 아, 로그 파일이 좀 커. 50GB 정도?"
pandas로는 죽어도 못 한다. Spark로 해결한다.
이번 프로젝트에서 사용할 기술
| 기술 | 어디서 사용 |
|---|---|
| DataFrame API | 데이터 변환 전반 |
| groupBy, agg | 트래픽 집계 |
| Window 함수 | 시간별 추이, 순위 |
| Join | 로그 + 사용자 정보 |
| UDF | 로그 파싱, IP 지역 변환 |
| Catalyst | 쿼리 최적화 |
분석 요구사항
1. 기본 트래픽 분석
- 시간대별 요청 수
- 상태 코드별 분포
- Top 10 인기 페이지
2. 에러 분석
- 시간대별 에러율 (4xx, 5xx)
- 에러가 많은 페이지
- 에러 트렌드
3. 사용자 행동 분석
- 사용자당 세션 수
- 평균 체류 시간 (추정)
- 이탈률이 높은 페이지
4. 성능 분석
- 응답 시간 분포
- 느린 요청 Top 10
- 시간대별 평균 응답 시간
데이터 형식
Apache 로그 형식 (Combined Log Format):
에디터 로딩 중...
| 필드 | 설명 |
|---|---|
| IP | 클라이언트 IP |
| ident | 거의 항상 - |
| user | 인증된 사용자 (없으면 -) |
| timestamp | 요청 시간 |
| request | HTTP 메서드 + URL |
| status | HTTP 상태 코드 |
| size | 응답 크기 (바이트) |
| referer | 유입 경로 |
| user_agent | 브라우저 정보 |
진행 방법
- 로그 파싱 (Task 2) - UDF로 로그 파싱
- 기본 분석 (Task 3) - groupBy, 집계
- 심화 분석 (Task 4) - Window 함수
- 최적화 (Task 5) - Catalyst 활용
- 종합 대시보드 (Task 6) - 최종 결과
3~4시간 정도 소요됩니다. 화이팅!