Spark(아파치 스파크)
중간 처리 결과를 디스크가 아닌 메모리에 올려두고 반복적으로 활용해, 매번 디스크를 읽고 써야 했던 MapReduce보다 훨씬 빠른 속도를 내는 분산 데이터 처리 엔진입니다.
한눈에 보는 정의
Spark(아파치 스파크)는 데이터를 메모리에 올려두고 처리해, 디스크를 반복적으로 읽고 쓰는 MapReduce(맵리듀스) (MapReduce)보다 훨씬 빠른 속도를 내는 분산 데이터 처리 엔진입니다.
자세히 알아보기
- 예문: "같은 분석 작업을 MapReduce에서 Spark로 옮기자, 처리 시간이 몇 시간에서 몇 분으로 크게 줄었다."
- MapReduce는 각 단계가 끝날 때마다 결과를 디스크에 썼다가 다시 읽어야 했지만, Spark는 데이터를 RDD(탄력적 분산 데이터셋) (RDD) 형태로 메모리에 유지한 채 여러 연산을 이어서 처리할 수 있어 반복 연산이 많은 작업에서 특히 빠릅니다.
- 배치 처리뿐 아니라 실시간으로 들어오는 데이터를 처리하는 스트리밍, SQL 질의를 지원하는 Spark SQL(스파크 SQL 처리 엔진) (Spark SQL), 머신러닝까지 하나의 플랫폼에서 함께 지원해 활용 범위가 넓습니다.
- 하둡(Hadoop) (하둡)의 YARN(하둡 자원관리 플랫폼) (YARN) 위에서 실행되거나, Kubernetes(쿠버네티스) (쿠버네티스) 클러스터 위에서 독립적으로 실행되는 등 다양한 환경에서 운용할 수 있습니다.