요약: Memory or Time: Performance Evaluation for Iterative Operation on Hadoop and Spark
이 논문은 Hadoop과 Spark를 비교하여 반복 연산(iterative operations) 성능을 시간과 메모리 관점에서 분석한다. 특히 PageRank 알고리즘을 사용하여 두 시스템의 처리 속도, 메모리 소비, 확장성 등을 평가하며, 각 플랫폼이 특정 시나리오에서 가지는 장단점을 논의한다.
주요 내용
1. 연구 배경:
• 반복 연산은 데이터 과학, 기계 학습, 그래프 분석 등에서 자주 발생하며, 이 과정에서 효율적인 데이터 처리 요구가 높아짐.
• Hadoop은 디스크 기반 데이터 접근으로 반복 작업에서 성능 저하를 겪는 반면, Spark는 **Resilient Distributed Datasets (RDDs)**를 통해 메모리에 데이터를 캐시하여 성능을 향상시킴.
2. 실험 환경 및 데이터 세트:
• 8개의 노드로 구성된 클러스터에서 실험 진행.
• 10개의 그래프 데이터 세트(실제 데이터와 합성 데이터) 사용.
• 각 실험은 5회의 PageRank 반복으로 실행.
3. 실험 결과:
• 성능 비교:
• 작은 데이터 세트: Spark가 Hadoop보다 최대 40배 빠름.
• 중간 크기 데이터 세트: Spark가 10~15배 빠름.
• 큰 데이터 세트: Spark가 3~5배 빠르지만, 메모리 부족 시 Spark의 이점 감소.
• 매우 큰 데이터 세트: Spark는 메모리 부족으로 충돌하는 반면, Hadoop은 안정적으로 실행.
• 메모리 소비 비교:
• Hadoop: 반복 연산 사이에 메모리를 주기적으로 해제.
• Spark: RDD의 읽기 전용 특성으로 인해 메모리 소비가 지속적으로 증가하며, 대규모 데이터 세트에서는 메모리 부족 문제 발생.
4. 결론 및 권장사항:
• Spark는 반복 연산에서 속도 이점이 있지만, 충분한 메모리가 필요.
• 메모리 제한이 있는 경우 Hadoop이 더 안정적이고 비용 효율적.
• 특정 알고리즘과 데이터 세트 크기에 따라 플랫폼 선택 필요.
5. 미래 연구:
• Spark에서 메모리 사용량과 실행 시간 간의 상관 관계를 예측하는 모델 개발.
• 그래프 구조가 성능에 미치는 영향 탐구.