하둡,spark

맵리듀스(MapReduce) 문제점

데이터왕 2024. 1. 18. 15:50

1. 맵리듀스 프로그래밍 문제점

  1. **생산성이 떨어짐. 데이터 모델과 오퍼레이션에 제약이 많음:**
       - **제한된 프로그래밍 모델:** MapReduce는 간단하고 병렬화하기 쉽지만, 일부 복잡한 문제에 대한 표현력이 제한되어 있습니다. 일부 알고리즘은 MapReduce로 표현하기 어려울 수 있습니다.
       - **데이터 모델 제약:** 기본적으로 Key-Value 쌍에 기반한 데이터 모델을 사용하며, 이는 모든 문제에 적합하지 않을 수 있습니다.

  2. **모든 입출력이 디스크를 통해 이뤄짐:**
       - **입출력 오버헤드:** MapReduce는 중간 결과를 디스크에 저장하고, 그 결과를 다시 읽어와서 처리하는 방식을 사용합니다. 이로 인해 디스크 I/O 오버헤드가 발생할 수 있습니다.
       - **성능 저하:** 대용량 데이터셋의 경우 디스크 입출력이 성능에 영향을 미칠 수 있으며, 메모리에 적재된 데이터를 처리하는 방식이 아니기 때문에 성능 저하가 발생할 수 있습니다.

  3.  **Shuffling 이후에 Data Skew가 발생하기 쉬움:**
       - **데이터 불균형:** Shuffling 단계에서 데이터가 노드 간에 이동할 때 데이터 불균형이 발생할 수 있습니다. 일부 키는 다른 키보다 더 많은 데이터를 생성할 수 있으며, 이는 처리 시간을 늘릴 수 있습니다.
       - **일부 태스크가 지연될 수 있음:** 데이터 불균형으로 인해 일부 리듀스 태스크가 다른 태스크에 비해 지연되는 현상이 발생할 수 있습니다.

  4.  **Reduce 태스크 수를 개발자가 지정해주어야 함:**
       - **타당한 태스크 수 설정 어려움:** Reduce 태스크 수를 지정하는 것은 어려울 수 있습니다. 너무 적은 태스크 수는 병렬성을 떨어뜨리고, 너무 많은 태스크 수는 오버헤드를 유발할 수 있습니다.

    이러한 문제점은 빅데이터 처리에 대한 새로운 접근 방식과 프레임워크의 개발로 극복되고 있습니다. Apache Spark와 같은 프레임워크는 이러한 제한을 극복하고 성능을 개선하기 위해 메모리 기반의 데이터 처리 및 다양한 프로그래밍 모델을 제공합니다.

+빨간부분 : Data Skew

결론 : spark 추천