대규모 데이터 프로세싱에 사용하는 빠르고 보편적인 엔진
Java, Scala, Python과 같은 언어를 이용해 스크립트를 작성할 수 있음.
Pig와의 다른 점은 Spark 위에 또 다른 풍부한 생태계가 존재하고, 그걸 사용해 머신 러닝이나 데이터 마이닝, 그래프 분석, 데이터 스트리밍 등을 할 수 있다는 점
Driver Program Pattern을 따름
Driver Program : 작업을 어떻게 진행할지 통제하는 스크립트
어찌되었든, Cluster Manager를 통해서 Cluster에 작업을 분배해 데이터를 병렬처리함.
이때, 각 Executor는 Cache와 Task를 갖는다.
MapReduce와 비교하면, Memory 내에서 동작할 땐 최대 100배까지 빠르고, Disk Access 제한이 있을 땐 10배 정도까지 빠르다.
DAG를 사용해서 워크플로를 최적화
Amazon, Ebay, NASA, Yahoo 등 다양한 회사에서 Spark를 활용하고 있다.
RDD! (Resilient Distributed Dataset)
Spark 2.0에서부턴 RDD 위에 데이터 셋을 생성할 수 있게 되었음 → SQL을 의식한 RDD의 개발.