Spark는 무엇인가?

대규모 데이터 프로세싱에 사용하는 빠르고 보편적인 엔진

Java, Scala, Python과 같은 언어를 이용해 스크립트를 작성할 수 있음.

Pig와의 다른 점은 Spark 위에 또 다른 풍부한 생태계가 존재하고, 그걸 사용해 머신 러닝이나 데이터 마이닝, 그래프 분석, 데이터 스트리밍 등을 할 수 있다는 점

Untitled

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의 개발.

Spark Components

Untitled