띵유로그

[SPARK] SPARK - ORIENTATION 본문

DataEngineering/SPARK

[SPARK] SPARK - ORIENTATION

띵유 2020. 11. 25. 23:02
반응형

Spark 는 하둡 에코시스템 중 분산데이터 처리기에 해당한다.
분산 데이터 처리기는 Spark, Tez, MapReduce등 많은 것이 있지만, Spark만의 장점이 무엇인지 알아보자.

 

1. 다양한 언어 지원 & 쉬운 프로그래밍

Spark는 Scala, java, python, R등 다양한 언어를 지원한다. (Spark내부적으로는 Scala로 동작한다.)
live stream 데이터도 처리할 수 있다.
또 대화형작업이나 기계학습과 같은 반복적인 데이터 플로우를 쉽게 프로그래밍할 수 있다.

* 참고로 python으로 작성하면 저수준 API인 RDD작성시 성능저하가 발생할 수 있다.
  JVM언어로 변환하는 과정에서 비용이 많이 발생하기 때문.. 고수준 API(Dataset, DataFrame등 )만사용하면 성능면에서는 큰 차이가 없다.

 

2. 확장성

Spark Driver는 쿼리를 최적화 하는 역할만 하고 실제 task는 각 Excutor에게 위임한다. 
데이터가 지속적으로 증가하는 프로젝트라면 필요시 excutor 서버만 하나씩 추가하면 관리하기 쉽다.(scale out)

 


* 작업량이 많을 때는 Executor를 늘리는 것이 좋지만 그렇지 않을 때에는 연산시간보다 통신에의한 지연 시간이 많을 수 있으니 적당한 서버를 두는것이 좋을 것이다.
* 위 그림에서 Slot은 병행처리 단위이다

3. 디스크 IO 없앰

MapReduce는 매번 디스크 IO가 발생한다.
스파크는 메모리 기반이기때문에 별도로 지정하지 않는 이상 디스크IO가 발생하지 않는다.
이는 처리 속도가 빠름을 의미한다.

 

반응형
Comments