HDFS 에서 돌아가는 맵리듀스 프레임워크의 단점

  1. 번거로운 운영 복잡도로 인해 관리가 쉽지 않다.
  2. 일반적인 배치 처리르 위한 맵리듀스 API는 장황하고 많은 양의 기본 셋업 코드를 필요로 하며, 장애 대응이 불안정하다.
  3. 방대한 배치 데이터 작업을 수행하면서 많은 MR 태스크가 필요해지면 각 태스크는 이후의 단계를 위해 중간 과정의 데이터를 로컬 디스크에 써야 했다. → 디스크 I/O작업은 실행 시간에 큰 타격을 주었다.
  4. 하둡 MR은 일반적인 배치 처리를 위한 대규모 작업에는 적당하지만 머신러닝이나 스트리밍, 상호 반응하는 SQL 계통의 질의 등 다른 워크로드와 연계하기에는 한계가 있다.

아파치 스파크란

속도

  1. 하드웨어 산업의 발전으로 CPU, 메모리 성능이 향상되었으며, 상용 서버는 수많은 코어, 효과적으로 멀티스레딩과 병렬 처리를 지원하는 유닉스 기반 OS 등이 포함되어 있다. 스파크 프레임워크는 이 모든 요소들로부터 이득을 얻을 수 있도록 설계되었다.
  2. 스파크는 질의 연산을 방향성 비순환 그래프(DAG, directed acyclic graph)로 구성한다. 이는 효율적인 연산 그래프를 만들어서 각각의 태스크로 분해하여 클러스터의 워커 노드 위에서 병렬 수행될 수 있도록 해 준다.
  3. 물리적 실행 엔진인 텅스텐(Tungsten)은 전체적 코드 생성(whole-stage code generation)이라는 기법을 사용하여 실행을 위한 간결한 코드를 생성해낸다. (3장)
  4. 모든 중간 결과는 메모리에 유지되며, 디스크 I/O를 제한적으로 사용하므로 성능이 크게 향상된다.

사용 편리성