[Apache Spark의 등장 배경]
Spark는 MapReduce 형태의 클러스터 컴퓨팅 한계를 극복하고자 등장하게 되었다. MapReduce는 Disk로부터 데이터를 읽은 후, Map을 통해 흩어져 있는 데이터를 Key-Value 형태로 데이터를 묶은 후에, Reduce를 하여 중복된 데이터를 제거하고, 원하는 데이터로 가공하여 다시 Disk에 저장한다. 하지만 이러한 파일 기반의 Disk I/O는 성능이 좋지 못했고, In-memory의 연산을 통해 처리 성능을 향상시키고자 Spark가 등장하게 되었다.
[Apache Spark 요약]
[Apache Spark]
Spark는 인 메모리 처리를 수행하고, 작업의 단계 수를 줄이고, 여러 병렬 작업에서 데이터를 재사용하여 MapReduce의 한계를 해결하기 위해 만들어졌다. Spark를 사용하면 데이터를 메모리로 읽어 들이고, 작업을 수행하고, 결과를 다시 쓰는 과정에서 단 한 단계만 필요하므로 실행 속도가 훨씬 빨라진다. 또한 Spark는 In-memory 캐시를 사용하여 데이터를 재사용하고, 동일한 데이터 세트에서 함수를 반복적으로 호출하는 기계 학습 알고리즘의 속도를 크게 높인다. 데이터 재사용은 메모리에 캐시되고 여러 Spark 작업에서 재사용되는 객체 모음인 Resilient Distributed Dataset(RDD)에 대한 추상화인 DataFrames 생성을 통해 수행된다. 이는 특히 기계 학습 및 대화형 분석을 수행할 때 Spark가 MapReduce보다 몇 배 더 빨라지도록 지연 시간을 크게 줄여준다.