Develop!/BigData

Spark란?

체리필터 2021. 9. 17. 17:43
728x90
반응형

BigData 관련해서 아무것도 모르는 상태인데 회사에서 기본적인 Spark 사용이 필요하여 조금씩 알아가며 정리를 해 볼까 한다.

아무것도 모르는 개발자로서 하나 하나 적어 나가는 것이므로, 아주 아주 기초적인 수준이 될 것으로 보이며, 잘못된 정보가 기록될 가능성도 크다.

Spark가 나오기 전에는 하둡과 맵리듀스를 사용하여 대용량 데이터를 처리하였다. 하둡과 맵리듀스도 사용해 보지 않아 정확하게는 모르지만, 맵리듀스를 이용해 정제된 데이터를 분산 디스크(HDFS)에 쓰고, 그 내용을 하둡이 다시 가지고 처리하여 저장하는 일련의 과정을 반복하여 값을 가져오는 방식이였다.

하지만 Spark는 대량의 데이터를 메모리에 유지하는 설계로 성능을 끌어 올렸으며, 이로 인해 맵리듀스보다 10 ~ 100배 빠른 속도로 처리할 수 있다고 한다.

하지만 기본적으로 분산 아키텍처 때문에 오버헤드가 발생하게 되고, 따라서 작은 데이터셋을 다룰 때는 오히려 다른 프레임워크를 사용하는 것이 좋을 수 있다. 삽이 필요한 곳에 포크레인을 쓰는 것과 비슷하다고 할 수 있겠다.

또한 Spark는 일괄 분석을 염두에 두고 설계 되었기 때문에, 비동기적으로 데이터를 갱신하는 연산에는 적합하지 않다.

스파크를 구성하는 컴포넌트들에는 스파크 코어, 스파크 SQL, 스파크 스트리밍, 스파크 MLib, 스파크 GraphX 등이 있다.

이 글을 쓰는 현재로서 이것들이 무엇을 의미하는지 명확히 와 닿지는 않는다.

728x90
반응형